このトピックでは、Okta から Alibaba Cloud へのロールベース シングルサインオン (SSO) を実装する方法の例を紹介します。この例では、クラウド ID プロバイダー (IdP) から Alibaba Cloud へのエンドツーエンドの SSO プロセスについて説明します。
手順
この例では、approle という名前の属性が Okta アプリケーションのプロファイルに追加されます。 approle 属性は、Resource Access Management (RAM) ロールを指定するために使用されます。次の図は、Alibaba Cloud と Okta でロールベース SSO を実装する手順を示しています。

ステップ 1: Okta で SAML 2.0 ベースの SSO をサポートするアプリケーションを作成する
Okta ポータル にログインします。
Okta ポータルの右上隅にあるアカウント名をクリックし、ドロップダウンリストから [組織] を選択します。
左側のナビゲーションウィンドウで、 を選択します。
[アプリケーション] ページで、[アプリ統合の作成] をクリックします。
[新しいアプリ統合の作成] ダイアログボックスで、[SAML 2.0] を選択し、[次へ] をクリックします。
全般設定ステップで、アプリ名フィールドに role-sso-test と入力し、[次へ] をクリックします。
SAML の構成ステップで、パラメーターを構成し、[次へ] をクリックします。
[シングルサインオン URL]:
https://signin.alibabacloud.com/saml-role/sso。[Audience URI (SP Entity ID)]: または
urn:alibaba:cloudcomputing:international。[デフォルト Relaystate] フィールドに URL を入力します。ログイン後、ユーザーはこの URL にリダイレクトされます。
説明セキュリティ上の理由から、[デフォルト Relaystate] フィールドには、Alibaba の Web サイトを指す URL を入力する必要があります。たとえば、*.aliyun.com、*.hichina.com、*.yunos.com、*.taobao.com、*.tmall.com、*.alibabacloud.com、*.alipay.com などのドメイン名を含む URL を入力できます。Alibaba の Web サイトを指していない URL を入力すると、構成は無効になります。このパラメーターを空のままにすると、デフォルトで Alibaba Cloud 管理コンソールのホームページにリダイレクトされます。
[名前 ID 形式] ドロップダウンリストから [emailaddress] を選択します。
[アプリケーションユーザー名] ドロップダウンリストから [email] を選択します。
[アプリケーションユーザー名の更新日時] パラメーターのデフォルト値を保持します。
[フィードバック] ページで、アプリケーションのタイプを選択し、[完了] をクリックします。
ステップ 2: Okta の SAML IdP メタデータファイルをダウンロードする
[アプリケーション] ページで、role-sso-test をクリックします。表示されるページで、[サインオン] タブをクリックします。
[SAML 2.0] セクションで、[メタデータ URL] をコピーし、メタデータファイルをオンプレミスマシンにダウンロードします。
ステップ 3: Alibaba Cloud で SAML IdP を作成する
RAM 管理者として RAM コンソールにログインします。
左側のナビゲーションウィンドウで、 を選択します。
[ロールベース SSO] タブで、[SAML] タブをクリックし、[idp の追加] をクリックします。
[idp の作成] ページで、[idp 名] パラメーターを okta-provider に設定し、[備考] パラメーターを構成します。
[メタデータファイル] セクションで、[メタデータのアップロード] をクリックし、「ステップ 2: Okta から SAML IdP メタデータを取得する」で取得した IdP メタデータファイルをアップロードします。
[IdP の作成] ボタンをクリックします。
ステップ 4: Alibaba Cloud で RAM ロールを作成する
RAM コンソールの左側のナビゲーションウィンドウで、 を選択します。
[ロール] ページで、[ロールの作成] をクリックします。
[ロールの作成] ページの右上隅にある [ポリシーエディターに切り替える] をクリックします。
エディターで Security Assertion Markup Language (SAML) IdP を指定します。
エディターはビジュアルモードと JSON モードをサポートしています。この例では、ビジュアルエディターを使用します。ステップ 3: Alibaba Cloud で SAML IdP を作成するで作成した IdP を[プリンシパル] に指定し、[SAML] を[ID プロバイダータイプ] に選択します。
エディターで、条件
saml:recipientをhttps://signin.alibabacloud.com/saml-role/ssoに設定します。[ロールの作成] ダイアログボックスで、[ロール名] パラメーターを admin に設定し、[OK] をクリックします。
ステップ 5: Okta でアプリケーションのプロファイルを構成する
アプリケーションのプロファイルに属性を追加します。
左側のナビゲーションウィンドウで、 を選択します。
role-sso-test を検索し、その名前をクリックします。
[プロファイルエディター] ページの [属性] セクションで、[属性の追加] をクリックします。
[属性の追加] ダイアログボックスで、属性のパラメーターを構成します。
[データ型] ドロップダウンリストから [文字列] を選択します。
[表示名] には、ユーザーインターフェースに表示される名前を入力します。この例では、
approleと入力します。[変数名] には、マッピングで参照する変数の名前を入力します (例:
approle)。このパラメーターの値は、属性を設定するときに必要になるため、メモしておいてください。[説明] フィールドに、属性の説明を入力します。このパラメーターはオプションです。
[列挙型] の横にある [列挙値のリストを定義する] を選択します。
説明[Enum] を使用して、プロパティ値を事前定義されたセットに制限できます。柔軟性を高めるために [Enum] を省略することもできます。
[属性メンバー] セクションで、属性の列挙値を指定します。各 [列挙値] は、Alibaba Cloud で作成した RAM ロールの名前と同じである必要があります。この例では、値は admin と reader です。
この例では、属性に列挙値が構成されているため、[属性の長さ] を設定する必要はありません。属性に列挙値が指定されていない場合は、[属性の長さ] パラメーターを構成します。
[属性必須] の横にある [はい] を選択します。
[スコープ]: [個人] の選択を解除します。
[保存] をクリックします。
属性を構成します。
左側のナビゲーションウィンドウで、 を選択します。
[アプリケーション] ページで、role-sso-test という名前のアプリケーションをクリックします。
SAML 設定[全般] タブの [編集] セクションで、 をクリックします。
[属性ステートメント (オプション)] セクションの [SAML の構成] ページで、次の図に示すように 2 つのステートメントを構成します。
最初のデータ項目の設定:
[Name] を
https://www.aliyun.com/SAML-Role/Attributes/RoleSessionNameに設定します。値 ドロップダウンリストから [user.email] を選択します。
2 番目のデータ入力の設定:
[Name] を
https://www.aliyun.com/SAML-Role/Attributes/Roleに設定します。[Value] を
String.replace("acs:ram::<account_id>:role/$approle,acs:ram::<account_id>:saml-provider/okta-provider", "$approle", appuser.approle)に設定します。この式は、$approleプレースホルダーを、ログインしているユーザーのアプリケーションプロファイルからのapprole属性の値に置き換えます。approle属性は、プロファイルで定義した属性です。okta-providerは、「ステップ 3: Alibaba Cloud で SAML IdP を作成する」で作成した IdP です。<account_id>を Alibaba Cloud アカウント ID に置き換えます。例:String.replace("acs:ram::177242285274****:role/$approle,acs:ram::177242285274****:saml-provider/okta-provider", "$approle", appuser.approle)。
ステップ 6: Okta でユーザーを作成し、アプリケーションをユーザーに割り当てる
ユーザーを作成します。
左側のナビゲーションウィンドウで、 を選択します。
表示されるページで、[ユーザーの追加] をクリックします。
[ユーザーの追加] ダイアログボックスで、[プライマリメール] フィールドにユーザーのメールアドレスを入力し、その他のパラメーターを構成して、[保存] をクリックします。この例では、メールアドレスは username@example.com です。
ユーザーリストで username@example.com を見つけ、アクティブ化[ステータス] 列の をクリックします。表示されるダイアログボックスで、プロンプトに従って username@example.com をアクティブ化します。
アプリケーションをユーザーに割り当てます。
次のいずれかの方法を使用して、アプリケーションを割り当てることができます。
アプリケーションをユーザーに割り当てる
左側のナビゲーションウィンドウで、 を選択します。
アプリケーション名 role-sso-test をクリックします。[割り当て] タブで、 を選択します。
表示されるダイアログボックスで、username@example.com ユーザーの横にある [割り当て] をクリックします。
[approle] ドロップダウンリストから admin を選択します。
表示されるダイアログボックスで、[保存して戻る] をクリックします。
[完了] をクリックします。
ユーザーをグループに追加し、アプリケーションをグループに割り当てる
左側のナビゲーションウィンドウで、 を選択します。表示されたページで、[Add Group] をクリックしてグループを作成します。
グループの名前をクリックします。表示されるページで、[ユーザーの管理] をクリックして、ユーザーをグループに追加します。
左側のナビゲーションウィンドウで、 を選択します。
アプリケーション名 role-sso-test をクリックします。 [割り当て] タブで、 を選択します。
グループの横にある [割り当て] をクリックします。
[approle] ドロップダウンリストから admin を選択します。
表示されるダイアログボックスで、[保存して戻る] をクリックします。
[完了] をクリックします。
説明ユーザーが複数のグループに属している場合、approle 属性の値は 1 つだけ使用できます。使用される属性値は、ユーザーが最初に追加されたグループに指定された値です。ユーザーがグループに追加または削除されると、approle 属性の値が変更されます。詳細については、「Okta ドキュメント」をご参照ください。
検証結果
左側のナビゲーションウィンドウで、 を選択します。
[アプリケーション] ページで、role-sso-test という名前のアプリケーションをクリックします。
[アプリ埋め込みリンク] セクションの [全般] タブで、[ログイン URL] をコピーします。
新しいブラウザウィンドウを開き、アドレスバーにログイン URL を貼り付けて、Enter キーを押します。ログインページで、ログインに username@example.com を使用します。
Default RelayStateで指定されたページ (または Alibaba Cloud 管理コンソールのホームページ) にリダイレクトされた場合、ログオンは成功です。
(オプション) Okta でユーザーに複数のロールを割り当てる
ユーザーを複数の Alibaba Cloud ロールにマッピングするには、グループ名で設定されたグループ属性ステートメントを使用する必要があります。設定方法は次のとおりです。
複数のグループを作成します。各グループ名は、SAML アサーションの role 属性の値と同じ形式に従う必要があります。たとえば、グループの名前を acs:ram::177242285274****:role/admin,acs:ram::177242285274****:saml-provider/okta-provider に設定できます。

username@example.com をグループに追加します。
アプリケーションの [SAML Settings] で、Role の属性ステートメントを削除し、Group Attribute Statement を追加します。[Name] を
https://www.aliyun.com/SAML-Role/Attributes/Roleに設定し、[Filter] をグループ名をフィルターする値 (例: `Start with acs:ram`) に設定します。
構成が完了したら、username@example.com ユーザーとして Alibaba Cloud 管理コンソールにログインします。引き受けるロールを選択するように求められます。

Okta の使用方法の詳細については、「Okta ドキュメント」をご参照ください。