このトピックでは、 Azure Active Directory (Azure AD) から Alibaba Cloud へのロールベースシングルサインオン (SSO) を実装する方法の例を示し、クラウド ID プロバイダー (IdP) から Alibaba Cloud へのエンドツーエンドの ID SSO プロセスについて詳しく説明します。 ロールベース SSO を実装すると、Alibaba Cloud にアクセスする Azure AD ユーザーを適切に管理したり、ユーザーが自分の Azure AD アカウントで Alibaba Cloud に自動的にログインしたり、Azure ポータルでアカウントを管理したりできるようになります。

シナリオ

Azure AD を使用してユーザーを管理し、Alibaba Cloud などの企業アプリケーションを設定します。 この例では、Alibaba Cloud アカウント (Account1) と u2 という名前のユーザーがあります。 u2 に Azure AD からAccount1 への SSO を実装します。

次の図は、基本的な SSO プロセスを示しています。
複数の Alibaba Cloud (ロールベース SSO) アプリを接続することで、Azure AD から複数の Alibaba Cloud アカウントへのロールベース SSO を実装することもできます。

設定

ロールベース SSO を実装するには、次の手順に従って Azure AD と Alibaba Cloud を設定する必要があります。
  • Azure AD ギャラリーから Alibaba Cloud のロールベース SSO を追加します。
    1. Azure ポータルにログインします。
    2. 左側のナビゲーションウィンドウで、 [Azure Active Directory] > [エンタープライズアプリケーション] > [すべてのアプリケーション] を選択します。
    3. [新しいアプリケーション] をクリックします。
    4. 表示されたページで、検索ボックスに「Alibaba Cloud Service (ロールベース SSO)」と入力し、 Enter を押し、[Alibaba Cloud Service (ロールベース SSO)] を選択します。
    5. 表示されたページで、[追加] をクリックします。
    6. [Alibaba Cloud Service (ロールベース SSO)] ページの左側のナビゲーションウィンドウで、[プロパティ] をクリックし、後で使用できるようにオブジェクト ID をコピーして保存します。
  • Azure AD で Azure AD SSO を有効にします。
    1. Azure ポータルで、 [Azure Active Directory] > [エンタープライズアプリケーション] > [すべてのアプリケーション] を選択します。
    2. [名前] 列で、[Alibaba Cloud Service (ロールベース SSO)] をクリックします。
    3. 表示されたページの左側のナビゲーションウインドウで、[シングルサインオン] を選択します。
    4. [シングル サインオン方式の選択] セクションで、[SAML] をクリックします。
    5. [SAML によるシングル サインオンのセットアップ] ページで、次の手順に従います。
      1. 左上隅で、[メタデータファイルのアップロード] をクリックして、Azure AD と Alibaba Cloud のロールベース SSO を統合し、[保存] をクリックします。
        URL https://signin.alibabacloud.com/saml-role/sp-metadata.xml からメタデータファイルを取得できます。
      2. [ユーザー属性と要求] セクションで、[編集] アイコンをクリックします。
      3. [新しい要求の追加] をクリックします。 [名前] フィールドに、Role を入力します。 [名前空間] フィールドに、https://www.aliyun.com/SAML-Role/Attributes を入力します。 [ソース][属性] を設定し、[ソース属性] ドロップダウンリストから user.assignedroles を選択し、[保存] をクリックします。
      4. 上記の手順を繰り返して新しい要求を追加し、[名前]RoleSessionName[ソース属性]user.userprincipalname を設定し、[保存] をクリックします。
        また、[名前空間] フィールドに https://www.aliyun.com/SAML-Role/Attributes を入力することもできます。
      5. [SAML 署名証明書] セクションで、[ダウンロード] をクリックして、後で使用できるようにフェデレーションメタデータ XML をダウンロードします。
      6. [Alibaba Cloud Service (ロールベース SSO) のセットアップ] セクションで、必要に応じて URL をコピーします。
  • Alibaba Cloud でロールベース SSO を設定します。
    1. Account1 を使用して、RAM コンソールにログインします。
    2. 左側のナビゲーションウィンドウで、[SSO] を選択します。
    3. [ロールベースの SSO ログイン方式] タブで、[ID プロバイダーの作成] をクリックします。
    4. 表示されたページの [プロバイダー名] フィールドに AAD を入力し、[メモ] フィールドに説明を入力し、[アップロード] をクリックして、前の手順でダウンロードしたフェデレーションメタデータファイルをアップロードし、[OK] をクリックします。
    5. IdP が正常に作成されたら、[RAM ロールの作成] をクリックします。
    6. [RAM ロール名] フィールドに、AADrole を入力し、[IdP の選択] ドロップダウンリストから AAD を選択し、[OK] をクリックします。
    必要に応じてロールに権限を付与することができます。 IdP とロールを作成したら、後で使用できるように IdP とロールの ARN を保存することを推奨します。 IdP 情報ページとロール情報ページで ARN を取得できます。
  • RAM ロール (AADrole) を Azure AD ユーザー (u2) に関連付けます。
    RAM ロールを Azure AD ユーザーに関連付けるには、次の手順に従って Azure AD でロールを作成する必要があります。
    1. Azure AD Graph Explorer にログインします。
    2. [アクセス許可の変更] をクリックして、ロールの作成に必要な権限を取得します。
    3. 次の図に示すように、リストから権限を選択し、[アクセス許可の変更] をクリックします。
      権限が付与されたら、Graph Explorer にログインしなおします。
    4. [Graph Explorer] ページで、1 番目のドロップダウンリストから [GET] を選択し、2 番目のドロップダウンリストから [ベータ] を選択します。 ドロップダウンリストの横にあるフィールドで、 https://graph.microsoft.com/beta/servicePrincipals を入力し、[クエリの実行] をクリックします。
      複数のディレクトリを使用している場合、クエリのフィールドに https://graph.microsoft.com/beta/contoso.com/servicePrincipalsと入力できます。
    5. [応答のプレビュー] セクションで、後で使用できるように Service Principal から appRoles プロパティを抽出します。
      クエリのフィールドに https://graph.microsoft.com/beta/servicePrincipals/<objectID> を入力して、appRoles をプロパティを見つけることができます。 objectID は、Azure AD の [プロパティ] ページからコピーしたオブジェクト ID です。
    6. Graph Explorer に戻り、方式を GET から PATCH に変更し、次の内容を [要求本文] セクションに貼り付け、[クエリの実行] をクリックします。
      
      { 
        "appRoles":[
          { 
            "allowedMemberTypes":[
              "User"
            ],
            "description": "msiam_access",
            "displayName": "msiam_access",
            "id": "41be2db8-48d9-4277-8e86-f6d22d35****",
            "isEnabled": true,
            "origin": "Application",
            "value": null
          },
          { "allowedMemberTypes": [
              "User"
          ],
          "description": "Admin,AzureADProd",
          "displayName": "Admin,AzureADProd",
          "id": "68adae10-8b6b-47e6-9142-6476078cdbce",
          "isEnabled": true,
          "origin": "ServicePrincipal",
          "value": "acs:ram::187125022722****:role/aadrole,acs:ram::187125022722****:saml-provider/AAD"
          }
        ]
      }
      value は、IdP の ARN と、RAM コンソールで作成したロールです。 ここでは、必要に応じて複数のロールを追加できます。 Azure AD は、これらのロールの値を SAML レスポンスの要求値として送信します。 ただし、新しいロールを追加できるのは、パッチ操作の msiam_access 部分以降です。 作成プロセスを円滑にするため、GUID ジェネレーターなどの ID ジェネレーターを使用して、ID をリアルタイムに生成することを推奨します。
    7. 'Service Principal' に必要なロールが適用されたら、次の手順に従って、そのロールに Azure AD ユーザー (u2) を関連付けます。
      1. Azure ポータルで、 [Azure Active Directory] > [エンタープライズアプリケーション] > [すべてのアプリケーション] を選択します。
      2. [名前] 列で、[Alibaba Cloud Service (ロールベース SSO)] をクリックします。
      3. 表示されたページで、左側のナビゲーションウィンドウから [ユーザーとグループ] を選択します。
      4. 左上隅で、[ユーザーの追加] をクリックします。
      5. [ユーザーとグループ] タブで、ユーザーリストから u2 を選択し、[選択] をクリックします。 次に、[割り当て] をクリックします。
      6. 割り当てられたロールを表示し、ロールベース SSO をテストします。
    ユーザー (u2) を割り当てた後、作成されたロールは自動的にそのユーザーに割り当てられます。 複数のロールを作成した場合、必要に応じて適切なロールをユーザーに割り当てる必要があります。 Azure AD から複数の Alibaba Cloud アカウントへのロールベース SSO を実装する場合、上記の手順を繰り返します。

ロールベース SSO のテスト

上記の設定が完了したら、次の手順に従ってロールベース SSO をテストします。
  1. Azure ポータルで、[Alibaba Cloud Service (ロールベース SSO)] ページに移動し、[シングルサインオン] を選択し、[テスト] をクリックします。
  2. [現在のユーザーとしてサインインする] をクリックします。
  3. アカウントの選択ページで、u2 を選択します。
次のページが表示され、ロールベース SSO が成功したことを示します。