このトピックでは、エンタープライズ ID プロバイダー (IdP) としての Okta と Alibaba Cloud の間で、ロールベースのシングルサインオン (SSO) を設定する方法について説明します。
操作手順
この設定の目的は、Okta アプリケーションに approle という名前の属性を作成することです。この属性は、ユーザーを Alibaba Cloud の特定の Resource Access Management (RAM) ロールにマッピングします。次の図の手順に従って、Alibaba Cloud と Okta の両方を設定します。

ステップ 1:Okta での SAML SSO アプリケーションの作成
-
Okta ポータルにログインします。
-
ページの右上隅にあるアカウントアイコンをクリックし、[Your Org] をクリックします。
-
ナビゲーションウィンドウで、[Applications] > [Applications] を選択します。
-
[Applications] ページで、[Create App Integration] をクリックします。
-
[Create a new app integration] ダイアログボックスで、[SAML 2.0] を選択し、[Next] をクリックします。
-
アプリケーション名を
role-sso-testに設定し、[Next] をクリックします。 -
SAML 設定を構成し、[Next] をクリックします。
-
シングルサインオン URL:
https://signin.alibabacloud.com/saml-role/sso。 -
Audience URI (SP エンティティ ID):
urn:alibaba:cloudcomputing:international。 -
Default RelayState:サインインに成功した後にユーザーがリダイレクトされる Alibaba Cloud ページを指定します。
説明セキュリティ上の理由から、[Default RelayState] の値として入力できるのは、*.aliyun.com、*.hichina.com、*.yunos.com、*.taobao.com、*.tmall.com、*.alibabacloud.com、*.alipay.com などの Alibaba が所有するドメインの URL のみです。無効な URL を入力した場合、設定は有効になりません。このパラメーターを空のままにした場合、ユーザーはデフォルトで Alibaba Cloud 管理コンソールのホームページにリダイレクトされます。
-
名前 ID のフォーマット:[EmailAddress] を選択します。
-
アプリケーションのユーザー名:[Email] を選択します。
-
Update application username on:デフォルト値のままにします。
-
-
[Feedback] ページで、アプリケーションの種類を選択し、[Finish] をクリックします。
ステップ 2:Okta からの SAML IdP メタデータの取得
-
role-sso-testアプリケーションの詳細ページで、[Sign On] タブをクリックします。 -
[SAML 2.0] セクションで、[Metadata URL] をコピーし、IdP メタデータをローカルファイルに保存します。
ステップ 3:Alibaba Cloud での SAML IdP の作成
-
RAM 管理者として RAM コンソールにログインします。
-
ナビゲーションウィンドウで、 を選択します。
-
ロールベースの SSO ログイン方式 タブで、[SAML] タブをクリックし、IdP の作成 をクリックします。
-
IdP の作成 ページで、
okta-providerなどの IdP 名 と 注 を入力します。 -
メタデータファイル セクションで、メタデータドキュメントをアップロード をクリックし、ステップ 2: Okta から SAML IdP メタデータを取得する で取得した IdP メタデータをアップロードします。
-
IdP の作成 をクリックします。
ステップ 4:Alibaba Cloud での RAM ロールの作成
-
RAM コンソールのナビゲーションウィンドウで、 を選択します。
-
ロール ページで、ロール作成 をクリックします。
-
ロール作成 パネルの右上隅で、Switch to Policy Editor をクリックします。
-
エディターで SAML IdP を指定します。
エディターはビジュアルエディタとスクリプトエディタをサポートしており、どちらか一方を使用できます。 たとえば、ビジュアルエディタでは、Principal フィールドに「手順 3: Alibaba Cloud で SAML ID プロバイダーを作成する」で作成した ID プロバイダーを指定し、IdP タイプ に SAML を選択する必要があります。
-
エディターで、条件
saml:recipientをhttps://signin.alibabacloud.com/saml-role/ssoに設定します。 -
ロール作成 ダイアログボックスで、ロール名 に
adminなどを入力し、OK をクリックします。
ステップ 5:Okta でのアプリケーションプロファイルの設定
-
プロファイルを編集して新しい属性を追加します。
-
ナビゲーションウィンドウで、[Directory] > [Profile Editor] を選択します。
-
アプリケーション名
role-sso-testを検索してクリックします。 -
[Profile Editor] ページで、[Attributes] セクションの [Add Attribute] をクリックします。
-
[Add Attribute] ダイアログボックスで、属性情報を設定します。
-
データ型:[string] を選択します。
-
表示名:UI に表示する名前を入力します。この例では、
approleと入力します。 -
変数名:マッピングで参照される変数名を入力します。この例では、
approleと入力します。後で使用するためにこの値をメモしておきます。 -
説明:属性の説明を入力します。このパラメーターはオプションです。
-
列挙: [値の列挙リストを定義] を選択します。
説明列挙を使用すると、属性値が事前定義されたリストに制限されます。より柔軟性を持たせるために、このオプションをスキップすることもできます。
-
属性メンバー:列挙値のリストを入力します。[値] は、作成した RAM ロールの名前 (例:
admin、reader) と一致する必要があります。 -
属性の長さ:この例では列挙が使用されているため、この設定は必須ではありません。列挙を使用しない場合は、必要に応じて属性の長さを設定してください。
-
必須属性:[Yes] を選択します。
-
スコープ:[User personal] の選択を解除します。
-
-
[Save] をクリックします。
-
-
属性ステートメントを設定します。
-
ナビゲーションウィンドウで、[Applications] > [Applications] を選択します。
-
アプリケーション名
role-sso-testをクリックします。 -
[General] タブの [SAML Settings] セクションで、[Edit] をクリックします。
-
[Configure SAML] ページの [Attribute Statements (optional)] セクションで、2 つのステートメントを設定します。最初のステートメントでは、[Name] を
https://www.aliyun.com/SAML-Role/Attributes/RoleSessionName、[Name format] を [Unspecified]、[Value] をuser.emailに設定します。2 番目のステートメントでは、[Name] をhttps://www.aliyun.com/SAML-Role/Attributes/Role、[Name format] を [Unspecified]、[Value] をacs:ram::<account_id>で始まる RAM ロール ARN の式に設定します。-
最初のステートメントを設定します:
-
Name:
https://www.aliyun.com/SAML-Role/Attributes/RoleSessionNameを入力します。 -
Value:[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属性の値に置き換えて、最終的な SAML 属性値を生成します。この式では、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:ユーザーの作成とアプリケーションの割り当て
-
ユーザーを作成します。
-
ナビゲーションウィンドウで、 を選択します。
-
[Add person] をクリックします。
-
[Add Person] ページで、基本情報を入力し、[Primary email] を
username@example.comなどのユーザーのメールアドレスに設定して、[Save] をクリックします。 -
ユーザーリストでユーザー
username@example.comを見つけ、[Status] 列の [Activate] をクリックします。画面の指示に従ってユーザーをアクティブ化します。
-
-
アプリケーションを割り当てます。
アプリケーションは、次の 2 つの方法のいずれかで割り当てることができます。
-
アプリケーションを単一のユーザーに割り当てます。
-
ナビゲーションウィンドウで、 を選択します。
-
アプリケーション名
role-sso-testをクリックします。[Assignments] タブで、 を選択します。 -
対象ユーザー
username@example.comの横にある [Assign] をクリックします。 -
[approle] に、
adminを選択します。 -
[保存して戻る] をクリックします。
-
[Done] をクリックします。
-
-
ユーザーをグループに追加し、アプリケーションをそのグループに割り当てます。
-
ナビゲーションウィンドウで、 を選択し、[Add Group] をクリックしてグループを作成します。
-
グループ名をクリックし、[Manage People] をクリックして、ユーザーをグループに追加します。
-
ナビゲーションウィンドウで、 を選択します。
-
アプリケーション名
role-sso-testをクリックします。[Assignments] タブで、 をクリックします。 -
対象グループの横にある [Assign] をクリックします。
-
[approle] に、
adminを選択します。 -
[保存して戻る] をクリックします。
-
[Done] をクリックします。
説明ユーザーが複数のグループに所属している場合、使用される属性値は 1 つだけです。Okta は、アプリケーションの [Assignments] タブでユーザーに最初に割り当てられたグループの値を使用します。グループメンバーシップの変更は
approleの値に影響を与える可能性があります。詳細については、Okta のドキュメントをご参照ください。 -
-
設定の確認
-
ナビゲーションウィンドウで、 を選択します。
-
アプリケーション名
role-sso-testをクリックします。 [General] タブの [App Embed Link] エリアで、[Embed Link] の URL をコピーします。
-
新しいブラウザウィンドウを開き、URL を貼り付けて、
username@example.comとしてサインインします。サインインに成功すると、
Default RelayStateで指定されたページまたは Alibaba Cloud 管理コンソールのホームページにリダイレクトされます。コンソールにリダイレクトされると、ウェルカムメッセージが表示されます。右上隅にあるアバターをクリックします。ドロップダウンパネルには、現在のサインイン ID がオレンジ色の [role] ラベル付きで admin/ と表示されます。これは、RAM ロールを引き受けることでコンソールに正常にサインインしたことを示します。
(オプション) ユーザーへの複数ロールの設定
ユーザーを複数の Alibaba Cloud ロールにマッピングする必要がある場合は、グループ属性ステートメントを使用し、グループ名に基づいて設定する必要があります。次のステップに従います:
-
複数のグループを作成します。各グループ名は、SAML アサーションの Role 属性で要求されるフォーマットに従う必要があります。たとえば、
acs:ram::177242285274****:role/admin,acs:ram::177242285274****:saml-provider/okta-providerという名前のグループを作成できます。同様に、reader ロール用にacs:ram::177242285274****:role/reader,acs:ram::177242285274****:saml-provider/okta-providerという名前のグループを作成します。 -
ユーザー
username@example.comをこれらのグループに追加します。 アプリケーションの [SAML Settings] で、Role の属性ステートメントを削除し、グループ属性ステートメントを追加します。新しいステートメントで、Name を
https://www.aliyun.com/SAML-Role/Attributes/Roleに設定します。Filter は、前述のグループ名を取得するように設定する必要があります (例:Start with acs:ram)。-
これらのステップを完了すると、ユーザーが次に Alibaba Cloud にサインインするときに、ロールを選択するよう求められます。サインインページには、reader と admin のロールが表示されます。ユーザーはロールを選択し、[Sign In] をクリックしてサインインを完了します。
Okta の詳細については、Okta のドキュメントをご参照ください。