機能概要
SAMLベースのフェデレーション認証がサポートされ、RippleやWaveへログインする際にSSO(Single Sign on)を使ってログインをすることができるようになりました。
この機能により従来のパスワード認証によるアクセスに比べ、管理者側での集権的な管理が可能になり、セキュリティを高めることができます。
設定手順
今回はAuth0を例に説明しますが、Okta, Auth0, Google Workspace など
のSAML 2.0 ベースIdP (ID プロバイダ) に対応しています。
SP (サービスプロバイダー) とは、ここではRipple/Waveを指します。 先ずはRipple の設定を順を追って説明していきます。 Wave の設定も順序は殆ど同じですがValueが違ってきますので、最後にWave 版のValue も記載しておきます。
1. Auth0でRippleをSPとしてSAMLアプリケーションを作成
1.1 [Applications]を選択し、[+ CREATE APPLICATIONS] をクリック。
1.2 [Single Page Web Applications] を選択し、[CREATE] をクリック。
1.3 [Addons] を選択し、[SAML2 WEB APP] を有効化。
1.4 SAML2 Web Appを有効化すると、下記のページがポップアップしますので
先に[Settings]をクリックして
[Applicaatioin Callback URL] に
https://login.alphaus.cloud/ripple/saml
を入力してください。
その直ぐ下にある 黒い画面のSAML settings はディフォルトのまま変更は必要ありません。
最後に [ENABLE] をクリックしてください。
1.5 [Usage] タブに戻りIdentity Provider Metadata をダウンロードします。
2. Ripple 側でIdP ID を生成
2.1 Ripple に戻り [環境設定] 内にある[IdP設定]を選択し、[+IdP追加]をクリックします。
2.2 下記のフォームを入力。
名前: お好きな名前をつけてください。
SAMLメタデータ: 上記ステップ1.5でダウンロードしたメタデータをアップロード
2.3 後ほどこの IdP IDが必要になりますのでコピーしておきます。
3. Auth0側でユーザーを設定
3.1 Auth0 に戻り、[Users & Roles] - [Users] から任意のユーザーを選び[View Details]をクリック。
3.2 [View Details]をクリックし下記のページに移行します。
3.3 上のスクリーンショット黒い部分に入力する用に 下記のuser_metada サンプルをベースに生成します。
{
"rippleIdpId": "db4e02b5-91fa-4109-9b90-648750405ce0",
"rippleProfiles": "MSP-5aa311904d5d6:ripple/RIPPLE_ADMIN,user/USER_ADMIN,rbac/RBAC_ADMIN"
}
3.3.1 ステップ2.2 でコピーしておいた Auth0 のIdP IDを
上記user_metadata サンプルにペーストします。
"rippleIdpId": "< この箇所にペースト >",
3.3.2 Ripple のユーザー設定から MSP IDをコピーします。
そのMSP IDを上記user_metadata サンプルの下記にペーストします。
"rippleProfiles": "< この箇所にペースト >:
3.3.3 許可を与えるロールを設定します。
このサンプルでは赤線で囲われた3つのロールに許可するよう設定されています。
ripple/RIPPLE_ADMIN,user/USER_ADMIN,rbac/RBAC_ADMIN"
3.3.4 サンプルを元に生成されたuser_metadataを下記の様にペーストし[Save]します。
4. Auth0でルールを設定
4.1 IdP Auth0に戻り左メニューから[Rules] を選択し、[+CREATE RULE]をクリックします。
4.2 [Empty rule] を選択。
4.2 [Name] はなんでもいいのですが、ここでは Alphaus-Rippleとします。
4.3 このサンプルRULE Script をそのまま
function (user, context, callback) {
context.samlConfiguration.mappings = {
'https://app.alphaus.cloud/ripple/SAML/Attributes/IDPID': 'user_metadata.rippleIdpId',
'https://app.alphaus.cloud/ripple/SAML/Attributes/Profiles': 'user_metadata.rippleProfiles',
'https://app.alphaus.cloud/ripple/SAML/Attributes/SessionName': 'email'
};
callback(null, user, context);
}
こちらの黒い箇所にコピー・ペーストし [SAVE CHANGES] をクリックしてください。
5 Login を試す
5.1 Auth0 の 先程作ったSAML2 Web App に戻り、Identify Provider Login URL からLogin ページに飛びます。
5.2 下記の様な画面がでてきたら設定完了です。
5.3 実際にサインインし、右上のステータスに正しいアカウントが表示されているか確認してください。
5.4 お疲れさまでした。 Ripple の連携はこれで成功です。 Waveもほぼ同じ手順で設定可能です。次のセクションでWaveの設定もお願いします。
6. Wave の設定
6. 1 Wave版 user_metada サンプルをベースに生成します。
{
"waveIdpId": "0a771745-261a-4ff0-b923-36e9672db65b", "waveProfiles":"reseller|UL3yxO2S|600fa583ce8a0:wave/WAVE_ADMIN,user/USER_ADMIN,rbac/RBAC_ADMIN"
}
6.2 [環境設定] -> [IdP設定] -> [+IdP追加] にてIdP ID を取得し
上記user_metadata サンプルにペーストします。
"waveIdpId": "< この箇所にペースト >",
6.3 Wave の [設定] 画面からWave IDを取得し
6.4 上記 user_metada サンプルのWave ID の箇所にペースとします。
"waveProfiles":"< この箇所にペースト > :
6.5 Auth 0 Rules に このサンプルRULE Script をそのままコピー・ペースト
function (user, context, callback)
{
context.samlConfiguration.mappings = {
'https://app.alphaus.cloud/wave/SAML/Attributes/IDPID': 'user_metadata.waveIdpId',
'https://app.alphaus.cloud/wave/SAML/Attributes/Profiles': 'user_metadata.waveProfiles',
'https://app.alphaus.cloud/wave/SAML/Attributes/SessionName': 'email'
};
callback(null, user, context);
}
6.6 後はRIPPLEと同じ手順で設定できます。 最後までお付き合いいただきありがとうございました!
注意点
マッピングの属性は次のとおりです。
Ripple:
Primary email or username (string) -> https://app.alphaus.cloud/ripple/SAML/Attributes/SessionName
IdP ID (string) -> https://app.alphaus.cloud/ripple/SAML/Attributes/IDPID
Profiles (list of strings) -> https://app.alphaus.cloud/ripple/SAML/Attributes/Profiles
Wave:
Primary email or username (string) -> https://app.alphaus.cloud/wave/SAML/Attributes/SessionName
IDP ID (string) -> https://app.alphaus.cloud/wave/SAML/Attributes/IDPID
Profiles (list of strings) -> https://app.alphaus.cloud/wave/SAML/Attributes/Profiles