このトピックでは、エンタープライズ 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 Entity 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 管理コンソールのホームページにリダイレクトされます。
-
Name ID format:[EmailAddress] を選択します。
-
Application username:[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 の作成 ページで、IdP 名 に
okta-providerなどを入力し、[備考] を入力します。 -
メタデータファイル セクションで、メタデータドキュメントをアップロード をクリックし、「手順 2:Okta からの SAML IdP メタデータの取得」で取得した IdP メタデータをアップロードします。
-
IdP の作成 をクリックします。
手順 4:Alibaba Cloud での RAM ロールの作成
-
RAM コンソールのナビゲーションウィンドウで、 を選択します。
-
ロール ページで、ロール作成 をクリックします。
-
ロール作成 パネルの右上隅にある エディターを切り替え をクリックします。
-
エディターで SAML ID プロバイダーを指定します。
エディターは、ビジュアルエディターとスクリプトエディターをサポートしています。どちらか一方を使用できます。たとえば、ビジュアルエディターでは、Principal フィールドで「手順 3:Alibaba Cloud での SAML IdP の作成」で作成した 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と入力します。後で使用するため、この値をメモしておいてください。 -
説明:属性の説明を入力します。このパラメーターはオプションです。
-
Enum:[Define enumerated list of values] を選択します。
説明[Enum] を使用すると、属性値が事前定義されたリストに制限されます。より柔軟性を持たせるために、このオプションをスキップすることもできます。
-
属性メンバー:列挙値のリストを入力します。[値] は、作成した RAM ロールの名前 (例:
adminやreader) と一致する必要があります。 -
属性の長さ:この例では列挙を使用しているため、この設定は不要です。列挙を使用しない場合は、必要に応じて属性の長さを設定します。
-
必須属性:[はい] を選択します。
-
スコープ:[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に、[Value] をuser.emailに設定します。2 番目のステートメントでは、[Name] をhttps://www.aliyun.com/SAML-Role/Attributes/Roleに、[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 の作成」で作成した ID プロバイダーです。<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を選択します。 -
[Save and Go Back] をクリックします。
-
[Done] をクリックします。
-
-
ユーザーをグループに追加し、アプリケーションをグループに割り当てます。
-
ナビゲーションウィンドウで を選択し、[Add Group] をクリックしてグループを作成します。
-
グループ名をクリックし、[Manage People] をクリックして、ユーザーをグループに追加します。
-
ナビゲーションウィンドウで、 を選択します。
-
アプリケーション名
role-sso-testをクリックします。[Assignments] タブで、 をクリックします。 -
対象グループの横にある [Assign] をクリックします。
-
[approle] に、
adminを選択します。 -
[Save and Go Back] をクリックします。
-
[Done] をクリックします。
説明ユーザーが複数のグループに属している場合、1 つの属性値のみが使用されます。Okta は、アプリケーションの [Assignments] タブでユーザーに割り当てられた最初のグループの値を使用します。グループメンバーシップの変更は、
approleの値に影響を与える可能性があります。詳細については、「Okta ドキュメント」をご参照ください。 -
-
設定の確認
-
ナビゲーションウィンドウで、 を選択します。
-
アプリケーション名
role-sso-testをクリックします。 [General] タブの [App Embed Link] 領域で、[Embed Link] の URL をコピーします。
-
新しいブラウザーウィンドウを開き、URL を貼り付け、
username@example.comとしてサインインします。サインインに成功すると、
Default RelayStateで指定されたページ、または Alibaba Cloud 管理コンソールのホームページにリダイレクトされます。コンソールにリダイレクトされると、ウェルカムメッセージが表示されます。右上隅にあるアバターをクリックします。ドロップダウンパネルには、現在のサインインアイデンティティとして、オレンジ色の ロール ラベルが付いた admin/ が表示されます。これは、RAM ロールを引き受けることでコンソールへのサインインに成功したことを示します。
(オプション) ユーザーへの複数ロールの設定
ユーザーを複数の Alibaba Cloud ロールにマッピングする必要がある場合は、グループ属性ステートメントを使用し、グループ名に基づいて設定する必要があります。
-
複数のグループを作成します。各グループ名は、SAML アサーションの Role 属性で要求される形式に従う必要があります。たとえば、
acs:ram::177242285274****:role/admin,acs:ram::177242285274****:saml-provider/okta-providerという名前のグループを作成できます。同様に、acs:ram::177242285274****:role/reader,acs:ram::177242285274****:saml-provider/okta-providerという名前で reader ロールのグループを作成します。 -
ユーザー
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 ドキュメント」をご参照ください。