SEくぼたの事件簿

インフラSEとしての活動を記録していきます

AzureADを利用してガルーンクラウドにシングルサインオンする(ドメイン参加端末のみアクセス許可)

こんにちは。

 

この間、前職の先輩社員から下記みたいなことってできるよね?

と相談を受けました。せっかくなので先輩社員とともに検証してみましたのでその内容を記録します。

※実際に構築する際のお役にたてば何よりです!

 

 

これを利用するために今回AzureADを利用しています。

大まかに以下の内容を利用します。

  1. オンプレADと AzureADをAzureADConnect で同期設定( Hybrid Azure AD Join )
  2. AzureADにてガルーンクラウドシングルサインオン設定
  3. ガルーンクラウドに対してAzureADの条件付きアクセスを設定

イメージだと下図の感じです。

※こちらの環境の都合上 Intune とか入ってしまっていますが無視してください。

f:id:KKubo19:20210925113556p:plain

 

  • 必要ライセンス

今回必要なライセンスは Azure AD Premium P1 以上です。

内訳は下記の感じです。

 1. オンプレADと AzureADをAzureADConnect で同期設定( Hybrid Azure AD Join )

  →AzureAD Freeで可能 ( SLAはないけど )

 2. AzureADにてガルーンクラウドシングルサインオン設定

       →AzureAD Freeで可能 ( SLAはないけど )

    3. ガルーンクラウドに対してAzureADの条件付きアクセスを設定

  →AzureAD Premium P1以上が必要

 

  • 今回の前提

今回の構成ではHybrid AzureAD Join端末が必要となります。

Hybrid Azure AD Join構成は過去に方法を書いたので今回は省略します。

 

kbtblog.hatenablog.com

また、下記に記載していますが、オンプレADのExtensionAttribute1という値を利用しています。

この値をAzureADに同期する設定をAzureADConnect内で実施していますが、今回は手順を省略しています。

 

 

今回のブログでは上記が完了した前提で、以下2点を記載します。

1. AzureADを利用してガルーンクラウドシングルサインオンを設定

2. AzureADの条件付きアクセスを設定

 

  • 事前検討事項

シングルサインオンを実施する際にだいたいいつも検討することになると思いますが、

以下を検討しましょう。

 

 1. ガルーンクラウドにアクセスしてよい人をどのように制御するか

 2. AzureADとガルーンクラウドのIDが違う場合、どのようにマッピングするか

 3. AzureADを経由せず、ガルーンクラウドにアクセスさせてよいか

 4. どの認証プロトコルを利用するか

 

今回はそれぞれこんな感じで対応します。

 1. AzureAD内でユーザーを指定

 →実運用だとグループとかで指定したほうがよいかと!

 2. 以下の図の通りマッピング

 ※AzureADのIDと利用SaaSのIDが違うってことが多々あるため、、、

f:id:KKubo19:20210925115950p:plain

今回はExtension Attribute1という場所を使ってサインインするようにします。

 

3. 今回はガルーンクラウドに直接アクセスもOKにします。

 ※NGにするときもチェックボックスにチェック入れるだけなので

 

4. ガルーンクラウドはSAML2.0に対応しているのでSAML認証で設定します。

 

  • 設定方法

AzureADポータルよりエンタープライズアプリケーションを開きます。

f:id:KKubo19:20210925120541p:plain

新しいアプリケーションをクリック

f:id:KKubo19:20210925120755p:plain

検索画面にKintoneと入力し、表示されたKintoneをクリック

※ガルーンクラウドなのになんで?と思うかもしれませんが、Kintoneとガルーンクラウドは共通のポータルになっているようだ。。。。

これってつまりガルーンクラウドのSSO設定したらKintoneにもSSOされるってことでは・・・・??逆も然り・・・笑

まあいいか・・・・(知らん顔)

f:id:KKubo19:20210925120911p:plain

名前を入力して作成をクリック

f:id:KKubo19:20210925121307p:plain

ユーザーとグループの割り当てをクリック

f:id:KKubo19:20210925121454p:plain

ユーザーまたはグループの追加をクリック

f:id:KKubo19:20210925121533p:plain

選択されていませんをクリック

f:id:KKubo19:20210925121610p:plain

対象のグループやユーザーを選択

f:id:KKubo19:20210925121737p:plain

割り当てをクリック

f:id:KKubo19:20210925121803p:plain

シングルサインオンをクリックしてSAMLを選択

f:id:KKubo19:20210925121912p:plain

ガルーンクラウド側に移り、cybozu.com共通管理をクリック

f:id:KKubo19:20210925122200p:plain

ドメイン情報が必要になるため、ドメインを控える

その後、ログインをクリック

f:id:KKubo19:20210925122430p:plain

SAML認証を有効にするにチェックを入れる

f:id:KKubo19:20210925122512p:plain

Service Prividerメタデータのダウンロードをクリックしてxmlファイルをダウンロード

f:id:KKubo19:20210925122716p:plain

AzureAD側に戻り、メタデータをアップロードするをクリックして上記でダウンロードしたxmlファイルをアップロード

f:id:KKubo19:20210925122849p:plain

赤枠内がガルーンクラウドドメインとなるよう情報を追記

※エンティティIDは*がデフォルトで入りますが、*だとエラーになるのでドメイン名に修正

なお、一回エラー起きると保存できなくなるのでやりなおし、、、笑

f:id:KKubo19:20210925123206p:plain

ユーザー属性とクレームの編集をクリック

f:id:KKubo19:20210925123343p:plain

必要な要求の値をクリック

f:id:KKubo19:20210925123559p:plain

ソース属性から今回ガルーンクラウドにアクセスするときに利用する値の場所を選択して保存

user.msds_cloudextentsionattribute1を選択しました。

f:id:KKubo19:20210925123701p:plain

証明書(Base64)のダウンロードをクリックして証明書をダウンロード

f:id:KKubo19:20210925123917p:plain

ログインURLとログアウトURLをメモ

f:id:KKubo19:20210925124031p:plain

ガルーンクラウド側の画面に戻り、SSOエンドポイントURLにログインURLをログアウト後に遷移するURLにログアウトURLを入力し、先ほどダウンロードした証明書をアップロードして保存

f:id:KKubo19:20210925124201p:plain

ちなみにこれにチェックボックスいれるとかならずAzureADからサインインするように制限できます。

f:id:KKubo19:20210925124236p:plain

ただし、ドキュメントみると、これにチェックいれるとKintoneのAPIが使えなくなるみたいなこと書いてあった。。。。。まじっすか!!!

検証してないのでほんとかわからないのですが、、、、一応

 

AzureADに戻りTestをクリック

f:id:KKubo19:20210925124406p:plain

対象ユーザーを選択

f:id:KKubo19:20210925124432p:plain

無事入れました。

f:id:KKubo19:20210925124508p:plain

AzureADから発行するURLだとここがログインURLになっているのですが、

ガルーンクラウドはSP-Iniciate対応なので、「https://xxx.cybozu.com/g/」でアクセスすれば、予定表画面にアクセス可能です。

ここまでで、シングルサインオンの設定は完了!

 

ここからは条件付きアクセスを使ってHybridAzureADJoinした端末からのみアクセス可能にします。

 

エンタープライズアプリケーション内の作成したアプリから条件付きアクセスを選択し新しいポリシーをクリック

※先ほどまでと同じブレードです。

f:id:KKubo19:20210925125120p:plain

名前を入力

f:id:KKubo19:20210925125230p:plain

今回はHybrid AzureAD JoinのみOKとするので、こんな設定にしました。

f:id:KKubo19:20210925125413p:plain

f:id:KKubo19:20210925125538p:plain

本来はアクセス可能としたグループとかを割り当てることになるかと思います。

※アクセスできなくなった時のことを考えて対象外のユーザーを作成しておくことも重要

 

また、今回はとりあえずで作成したので考慮していませんが、

f:id:KKubo19:20210925125654p:plain

この設定をしていないので、スマホからのアクセスが不可となります。

f:id:KKubo19:20210925125723p:plain

スマホからもアクセスしたい場合、この条件から対象外として、スマホ用の条件付きアクセスを作成すると良いと思います。

※Intuneにて準拠済みならOKみたいなのをスマホ用として作成するとよいかも!

 Intuneライセンスいるけどね。。。。

 

設定が終わったら、作成ボタンをクリックしますが、デフォルトだとレポート専用となっています。

※レポートは出すけど、実際にブロックしたりしないよってことね!

慎重にやるならこれで稼働したのちオンに切り替えるとよいと思います。

f:id:KKubo19:20210925125956p:plain

ポリシーが作成されたのち、ちゃんと適応されるか確認するために、What ifを利用します。

f:id:KKubo19:20210925130116p:plain

条件を指定してWhat ifを実行すると

f:id:KKubo19:20210925130240p:plain

どのポリシーが適用されるか確認できます。

f:id:KKubo19:20210925130314p:plain

実際にアクセスすると

f:id:KKubo19:20210925130513p:plain

ブロックされました!!!

 

Hybrid Azure AD Join端末から試すと!

WindowsにサインインしただけでAzureADのログオン画面もでることなくアクセスできました!

f:id:KKubo19:20210925130748p:plain

ちなみに今回Chromium Edgeで実施していますが、Chromeとかだとデフォルトはこうなるのでご注意ください。

f:id:KKubo19:20210925131013p:plain

  • まとめ

条件付きアクセスとかを色々変えると様々なパターンのアクセス条件が作成できるので、ライセンスお持ちの方はぜひ利用してみては??

 

 

  • 最後に!

Twitterでも情報発信したいと思いますので、興味があったらフォローしてください!