「Azure ADで○○にシングルサインオン」 の第4弾です。
今回はオンプレミスの独自アプリと認証連携できるか検証してみました。
結果として、独自アプリについてもSAML対応していれば、Azure ADと認証連携を行うことが出来ました。
以下、Azure ADと独自アプリを連携させるための設定手順を記載します。
なお、認証連携を行うにあたり、幾つか前提条件があります。
- 独自アプリがSAMLに対応していること
- 独自アプリがhttpsに対応していること(未対応だとAzure ADに登録出来ません)
- 認証に使用するブラウザから、Azure ADとオンプレミスの独自アプリにアクセスできること
Azure AD(Premium)の設定
- Azure旧ポータルにログインします。
https://manage.windowsazure.com/ - Shibboleth IdP連携の記事を参考に、カスタムアプリケーションの構成を行います。
この際、前提に記載の通り、独自アプリのURLはhttpsである必要があります。
httpsで登録しようとすると、エラーとなりアプリが登録出来ません。
- トークン証明書をダウンロードします
この際ダウンロードするトークン証明書ですが、Shibboleth IdP設定の際に発行した証明書と別のものになりました。
どうやら、アプリ毎に証明書が異なるようです。複数アプリを認証連携する際は、証明書の紐づけ間違いにご注意ください。
- Azure AD側の設定は完了です。
- 「アカウントの割り当て」をクリックし、独自アプリへのアクセスを許可するアカウントを指定します。
独自アプリ側の設定
独自アプリ側の設定手順に従い、下記の設定を行います。
- Azure ADのメタデータを配置、もしくはentityID(https://login.windows.net/xxxxxxxx/saml2)を設定
- SAMLトークン証明書に、Azure ADからダウンロードした証明書を設定
- Azure ADからメールアドレス形式(urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress)の情報を受け取れるように設定
ログイン確認
- ブラウザを起動、https://myapps.microsoft.com にアクセスし、先ほど「アカウントの割り当て」でアクセス許可したユーザでログインします。
- アプリ選択画面より、独自アプリを選択します。
- ユーザ名/パスワードを入力することなく独自アプリに認証出来ることを確認します。
おわりに
以上で、Azure ADを使用して独自アプリにSSOすることが出来ました。
なお、今回は独自アプリのログインID=メールアドレスという想定で設定を行いました。
ログインIDがメールアドレスではない場合、独自アプリ側のログインIDをAzure ADに保持する & 独自アプリに送信する必要があります。
投稿時点ではまだ検証できていないため、手順が分かったらまた記事にしたいと思います。
シングルサインオン や 統合認証 などの導入イメージ については下記をご覧ください!
https://sios.jp/products/oss-integration/service/oss_on_cloud/authentication.html