Alibaba Cloud RAM ユーザをAzure AD でSSO認証する #1

最近、Alibaba Cloud のニュースを探す際、その日知ったAlibaba Cloud と関係がないキーワードで検索してみることをよくやっています。 この結果、自分にとってのニュース(知らなかったという点で)が見つかることがあります。

今回の話は”Azure AD Alibaba Cloud”で検索したことがきっかけです。

Google で” ”Azure AD Alibaba Cloud” を検索した結果は以下のスクリーンショットになりますが、Azure AD と Alibaba Cloud でSSOを構成するチュートリアルがトップに来ています。 まさか、こんな情報があるとは思わずに検索しているのでちょっとだけびっくりしました。

4,5番目に自分のブログが来ているのも違う意味でびっくりしましたが。

この1番目のチュートリアルですが、Microsoft の公式ドキュメントとなり、Alibaba Cloud とAzure AD のSSO 連携の手順が公開されています。 今回はこのSSO 設定を試してみる話となります。

https://docs.microsoft.com/ja-jp/azure/active-directory/saas-apps/alibaba-cloud-service-role-based-sso-tutorial

先にお伝えすると、今回の記事だけでは設定は完結しません。 続きは後日となります。

1. 設定作業

基本的にはMicrosoft のチュートリアル通りに進めます。 ただ、一部、画面や手順に違いがありそのまま進めることが出来ないところもありました。 

1.1. ギャラリーからAlibaba Cloud Service の追加

Azure ポータルからAzure AD の管理画面に進み、”新しいアプリケーション”をクリックします。

検索ボックスに”Alibaba Cloud Service”と入力します。 ”Alibaba Cloud Service (Role-based SSO)”と表示されるのでクリックします。

”追加”をクリックし、アプリケーションを追加します。

追加したアプリケーション(Alibaba Cloud Service (Role-based SSO))のプロパティを開きます。 後で利用するのでオブジェクトIDを控えておきます。

1.2. Azure AD シングルサインオンの構成

追加したアプリケーション(Alibaba Cloud Service (Role-based SSO))の 画面から”シングルサインオン”を開きます。 

シングルサインオンの方式の選択で”SAML”をクリックします。

基本的なSAML構成で編集アイコンをクリックします。

識別子が入力されていることを確認し、他は特に変更することなく”保存”をクリックします。 

※ここはチュートリアルとは手順が異なります。チュートリアルでは色々と設定しますが、今回のテストでは特に設定は不要でした。

ユーザー属性とクレームの編集アイコンをクリックします。

”新しいクレームの追加”をクリックします。

2つの属性を追加します。

1つ目はuser.assignedroles です。

2つ目はuser.userprincipalname です。

2つの属性が追加された画面です。

次にメタデータをダウンロードします。 これは後の手順でAlibaba Cloud 側でアップロードする際に利用します。

3つのURLを控えておきます。 

1.3. Alibaba Cloud RAM の設定

ここからの作業は国際アカウントとなります。 日本サイトでは構成できませんでした。 

Alibaba Cloud コンソールからRAMの管理画面に移動し、左メニューの”SSO”をクリックします。 そのあと、右画面の”IdPの作成”をクリックします。 日本サイトではこの”SSO”が画面に出てこないため設定できないということになります。

IdP の作成画面でIdp名と説明は任意の文字列、メタデータファイルに先ほどのAzure AD 側でダウンロードしたメタデータファイルを指定しアップロードします。

続けてRAM ロールの作成を進めます。

RAMロール名と説明は任意、IdPには1つ前の手順で作成したIdPを選択します。

とりあえずテストなのでAdministratorAccess ロールを割り当てます。

1.4. Azure AD Graph の設定

Graph Explore にアクセスし、サインインします。

https://developer.microsoft.com/graph/graph-explorer

“modify permissions” をクリックします。

以下の3つを有効化します。

  • Directory.AccessAsUser.All
  • Directory.Read.All
  • Directory.ReadWrite.All

“Beta”を選択し、” https://graph.microsoft.com/beta/servicePrincipals” でクエリを実行します。

appRoles のidを控えておきます。

次にGraph Explore で”PATCH”に変更し、

Request Body に以下を投入します。 太字・斜体の部分は実行環境に合わせて修正する必要があります。 ここもチュートリアルは説明不足でわかりづらい部分でした。

  • id は1つ前の手順のGET実行時に確認したappRoles のid
  • value はAlibaba Cloud のRAMでロールとSSOの設定から確認
{
“appRoles”: [
{
“allowedMemberTypes”:[
“User”
],
“description”: “msiam_access”,
“displayName”: “msiam_access”,
“id”: “41be2db8-48d9-4277-8e86-f6d22d35XXXXX“,
“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::XXXXXXXXXXX:role/aadrole,acs:ram::XXXXXXXXXX:saml-provider/add”
}
]
}

1.5. Alibaab Cloud のサポートへの設定依頼

次に実施することは”Alibaba Cloud のサポートチームにメタデータとURLを送信する”とのこと。

https://docs.microsoft.com/ja-jp/azure/active-directory/saas-apps/alibaba-cloud-service-role-based-sso-tutorial

リンクをクリックします。 中国語のページが開きます。 とりあえず、Chrome の翻訳機能を利用することにします。

https://cn.aliyun.com/service

サポートのページでした。 しかし、手順で示された”メタデータとURLを送信”だけでは次に何をする必要があるのかわかりません。 

https://cn.aliyun.com/service

とりあえず、国際サイトのサポートに問い合わせてみます。 ということでテストも今日のところはいったんここまでとします。