SaaSアプリとOpenID Connectで連携

皆さんこんにちは。国井です。
今日は普段のトレーニングで時間の都合や優先順位の関係上、省略してしまうことの多いAzure ADの基本機能を紹介してみたいと思います。
今回はOpenID Connect (OIDC) でSaaSアプリと連携する方法についてです。

SaaSアプリとAzure ADで連携する場合、SAMLプロトコルを使うことが多いですが、
SAMLプロトコルはIdPとSPでそれぞれ連携のための設定を行う必要があります。
フェデレーションメタデータを使うなどすれば、多少の設定は簡単になりますけど、
それでもそれなりの設定は必要です。

一方、SaaSアプリがOIDCに対応している場合、これから見てもらうように
連携するボタンを一発クリックするだけで設定完了というお手軽実装になっています。

前提条件

今回はサンプルとしてeHourというSaaSアプリを使ってみます。
サイトにアクセスして評価テナントを取得しておきましょう。

登録設定

SaaSアプリの登録は
Azure AD管理センターエンタープライズアプリケーション > 新しいアプリケーション から行います。検索窓からehourと入力すると、候補が出てきます。

image

エンタープライズアプリケーションから登録可能なSaaSアプリにはSAMLで連携できるもの、OIDCで連携できるもの、パスワードをデータセンターにキャッシュさせて連携できるものがあります。
OIDCで連携可能なアプリ一覧は新しいアプリケーションを登録する画面で
シングルサインオン=OpenID Connectとなるようにフィルター設定すれば確認できます。

image

話を元に戻します。
前の画面からeHourが出てきますがOIDCの場合、エンタープライズアプリケーションを登録する必要はなく、eHourサイトからAzure ADと連携するように指定するだけで完了します。

ということで、eHourのサイトに移動します。
eHourの評価版を取得したユーザーでログインし、
歯車マーク > Single Sign On > Connect with Microsoft Azure の順にクリックします。

image

Connect with Microsoft Azureをクリックすると、OIDCではおなじみの同意画面が登場します。[承諾]をクリックして同意してください。これで連携設定は完了です。

image

設定ができたら、一度ログアウトし、もう一度ログインしなおします。
image

このとき、[Log in with Microsoft]というボタンをクリックすると、
OIDCでのシングルサインオンが行われ、eHourのページにアクセスできるようになります。

設定結果の確認

Azure ADのエンタープライズアプリケーション側では何も設定しませんでしたが、ここまでの連携設定を行うと、eHourが追加されていることがわかります。

image

eHourをクリックして、[シングルサインオン]をクリックすると、
ほかのアプリと違って、SAMLやパスワード連携などを設定する項目がありません。

image

続いて[ユーザーとグループ]をクリックします。
すると、こちらでは同意を行ったユーザーが追加されていることがわかります。
eHourのライセンスを持つ他のユーザーでも同意を行えば、自動的にこの項目にユーザーが追加されます。

image

[アクセス許可]項目をクリックします。こちらでは同意の状況を確認できます。
[ユーザーの同意]タブをクリックすれば、同意したユーザーの一覧表示
[管理者の同意]タブをクリックすれば、ディレクトリを代表した同意を行うことができます。

image

ここで[管理者の同意を与えます]ボタンをクリックすると、以下の画面が登場しますので、[承諾]を押して管理者の同意を行います。

image

この後、別ユーザーでサインインしたとしても管理者の同意を行っているため、
ユーザー個別には同意画面が表示されることなく、eHourにログインできるようになります。

■ ■ ■

ここまでのところでOIDCでSaaSアプリとAzure ADを連携させる方法についてみてきましたが、OIDCはSAMLに比べて簡単実装。また、事前に管理者が同意しておけばユーザーが初めてログインするタイミングで同意画面が出ることもありません。
とても便利なSSO設定なのですが、現状の課題は対応アプリが少ないこと!
今後のSaaSベンダーさんの対応に注目したいところです。