sidebarIdM実験室いろんなアイデンティティ管理系製品やサービスの実験の記録をしていきます。後は、関連するニュースなどを徒然と。v2.0を利用して組織内外共用のアプリケーションを開発するこんにちは、富士榮です。近年は企業の働き方の変革が進み、業務アプリケーションについても企業組織内だけでなくグループ企業間で共用したり、サプライチェーンの中の関連企業との間で同じアプリケーションを共同利用するようなケースが増えてきています。ADテナントやマイクロソフトアカウントを使ってログインできるようにしたくなるところです。AD上にアプリケーションを登録することは可能でしたが、Azureの管理ポータルのようにマイクロソフトアカウントを使ったログインまではできませんでした。v2.0ではその部分を補完してくれています。Connecthttps://azure.microsoft.com/en-us/documentation/articles/active-directory-v2-protocols/早速、どのように動くのか確認してみます。ADの組織アカウントでも個人のマイクロソフトアカウントでもログインでき、個人のユーザ情報を表示するアプリケーションを作ってみます。OnlineでPHPを使って書いてみます。ブラウザだけで何でもできるので非常に簡単です。必要な作業は以下の通りです。Onlineでアプリケーションを書くでは、準備を進めます。ServiceよりWebアプリを作成するこの作業の最大の目的はURLを確定させることです。ここで取得したURLをredirect_uriとしてアプリケーション登録するためです。中身はなんでもいいので、とりあえずAzureの管理ポータルから簡易作成します。URLのうちホスト名は[任意の名前].azurewebsites.netとなるので、他と重複しない名前を付けてください。クライアントをアプリケーション登録ポータルから登録する次にアプリケーションを登録します。以下よりアプリケーション登録ポータルにログインし、アプリケーションを登録します。ADの組織アカウントもしくはマイクロソフトアカウントでログインします。https://apps.dev.microsoft.com/ログインすると右上に[アプリの追加]というボタンがあるので、ここをクリックして登録を開始します。アプリケーションID(client_id)は自動的に割り当てられるので、まずは任意のアプリケーション名をつけます。次にプラットフォームの項目より[プラットフォームの追加]をクリックしてアプリケーションのプラットフォームを選択します。今回はWebアプリケーションを選択します。次にリダイレクトURIの設定を行うので、先に登録したアプリケーションのURLを使います。今回はこの後作成するPHPページをindex.phpとしたので、ここでは先ほどのホスト名+index.phpをリダイレクトURIとして登録しています。次はアプリケーションシークレットを生成します。これがclient_secretになります。アプリケーションシークレットの項目の[新しいパスワードを生成]をクリックし、生成されるclient_secretをメモしておきます。最後にページ下部にある、[保存]をクリックしてアプリケーション登録は完了です。Onlineでアプリケーションを書くでは、実際に動くアプリケーションを書いてみます。Onlineを使ってPHPアプリケーションを書きます。Online]の順に開きます。Onlineを追加しています。するとエディタが開くので右クリックで新規にindex.phpという名前でファイルを作成し、コードを書いていきます。実際の使ったコードは以下の通りです(かなり手抜きですが・・・)。単純なcodeフローですね。ちなみにcodeからid_tokenを取得するところでcurlのエラー60番(SSLのVerificationエラー)が出るので、CURLOPT_SSL_VERIFYPEERをfalseにセットしています。マイクロソフト内部の通信のはずなんですが・・・。codeの取得(codeがパラメータについてなければ初回アクセスとしてみなしています。</html>EOF;?>書いたコード自動的に保存されるので、これで準備はこれで終了です。◆テストしてみるいよいよ動かしてみます。ADの組織アカウントとマイクロソフトアカウントの両方でログインできて、ユーザ情報が取得できていればOKです。マイクロソフトアカウントでログインしてみます。アプリケーションのURLを開くと、ログイン画面が出てくるのでログインアカウントの欄にマイクロソフトアカウント(メールアドレス)を入力します。すると自動的にマイクロソフトアカウントのログインページに遷移が始まります。ここでパスワードを入力してサインインします。すると初回アクセスだとアプリケーションによるアクセス許可の同意画面が出てくるのでアクセスを許可します。上手く動けばアプリケーションに遷移し、id_tokenに含まれるclaim(属性情報)が一覧で表示されます。ADの組織アカウントを使って同じことをしてみます。ADのログイン画面へ遷移しますので、パスワードを入れてサインインします。すると同じく同意画面が出てきますのでアクセスを許可します。上手く動けばアプリケーションに遷移し、claim一覧が表示されます。AD組織アカウントでは取得できる情報が若干異なるようです。いかがでしょうか?まだPreviewということでscopeが制限されていたりしますが、とりあえずログインまでは問題なく動くようですので、今後、外部アカウントと共同で業務を行う場合などはこのようなモデルでアプリケーションを開発するのも一つの選択肢となるかも知れません。Helloっぽくログインする[告知]9月はイベント三昧。よりアクセス解析を行っています。品質向上のみを目的とし、個人の特定などを目的とはしておりません。中で公開されることはあります。問い合わせ不明点等は管理人までご連絡ください。本プライバシーポリシーは予告なく変更/削除することがあります。プライバシーに関するトラブルについては一切の責任を負いかねますのでご了承ください。