ADFSでiOSから認証(Authentication)できない

概要

Outlook等にADFS3(AAD Connect) にアクセス時に初期設定では認証エラーになります。

以下の方法でアクセスできるようになります。

エラー内容(iOS)

不明なエラーが発生しました

エラーが発生しました。詳細については、管理者にお問合せ下さい。

  • Activity ID: ~
  • Replying party ~
  • Cookie: enabled
  • User agent string: Mozila/5.0 (iPhone; CPU iPhone OS 9_3_2 like Mac OS X) AppleWebKit/601.1.46(KHTML, like Gecko) Mobile/13F69

 

adfs_ios0010

 

問題解決方法

ADFSのサーバにログインしてイベントログでエラー内容を確認します。

adfs_ios0030

内容———–

パッシブな要求のフェデレーション中にエラーが発生しました。

 

追加データ

 

プロトコル名:

wsfed

 

証明書利用者:

urn:federation:MicrosoftOnline

 

例外情報:

Microsoft.IdentityServer.Service.Policy.PolicyServer.Engine.InvalidAuthenticationTypePolicyException: MSIS7102: 要求された認証方法は STS でサポートされていません。

場所 Microsoft.IdentityServer.Web.Authentication.GlobalAuthenticationPolicyEvaluator.EvaluatePolicy(IList`1 mappedRequestedAuthMethods, AccessLocation location, ProtocolContext context, HashSet`1 authMethodsInToken, Boolean& validAuthMethodsInToken)

場所 Microsoft.IdentityServer.Web.Authentication.AuthenticationPolicyEvaluator.RetrieveFirstStageAuthenticationDomain(Boolean& validAuthMethodsInToken)

場所 Microsoft.IdentityServer.Web.Authentication.AuthenticationPolicyEvaluator.EvaluatePolicy(Boolean& isLastStage, AuthenticationStage& currentStage, Boolean& strongAuthRequried)

場所 Microsoft.IdentityServer.Web.PassiveProtocolListener.GetAuthMethodsFromAuthPolicyRules(PassiveProtocolHandler protocolHandler, ProtocolContext protocolContext)

場所 Microsoft.IdentityServer.Web.PassiveProtocolListener.GetAuthenticationMethods(PassiveProtocolHandler protocolHandler, ProtocolContext protocolContext)

場所 Microsoft.IdentityServer.Web.PassiveProtocolListener.OnGetContext(WrappedHttpListenerContext context)

エラー修正

  • ADFSサーバにて、「ADFSの管理」をメニューから開く
  • 認証ポリシー
  • プライマリー認証-編集
  • adfs_ios0040
  • とりあえず全部チェックします。(全部いらないと思うけど。。。)
  • adfs_ios0050

テスト(iOS)

これでiOSから認証できるようになりました。

adfs_ios0020

参考

AAD Connect による、ADFS アプリテスト環境の作成の手順(SSL取得込で2時間で作れます)

概要

企業にはADFSが導入されている場合があり、AAD(Azure Active Directory)  アプリ (Application + OAuth2)のテスト環境が必要になります。

しかしながら、アプリの作成者がADFSを作成するには、難しいポイントがいくつかあるので、説明します。

この通りやると2時間程度でADFSテスト環境が作成できます。

はじめて、作成したので、アプリエンジニアがはまりそうなところは全部網羅していますので、ご期待ください。

全9回(作成中)

  1. ADFSとはなにか
  2. Office365を契約する。
  3. onamae.com でドメイン取得し、Office365にドメインを追加する。
  4. Azure Portal にログインできるようにして、AADを確認する。
  5. Local Windows Server OSインストール, AD(Active Directory)環境構築
  6. 試にディレクトリ同期(DirSync)のみでテストしてみる(この手順は不要です)
  7. SSLの取得、httpsのルータの設定
  8. ADFS(ディレクトリ同期+ 認証基盤)
  9. 動作確認(社内AD参加PCから、社外AD不参加PCから)

 

注意

OutlookのDesktopがうまく同期できない。おそらくSSLの問題なようなので調査中です。

AAD(Azure Active Dirctory) OAuth Application(Multi Tenant) ConcentUIのエラーについて

概要

AAD (Azure Active Dicrectory) のOAuth Application(アプリ)はアクセスを許可(承認)するためには、ConcentUI(コンセントUI)で許可する必要があります。

重要:組織で一度だけでOKです。

一般ユーザではConcent UIが表示されないように使用変更されたので
※Mutlti Tenant(マルチテナント) のみだと思われる?(Single Tenant未確認)

Global Administrator(全体管理者)がOrganization(組織)に許可しなければならない。

組織に許可すると一般ユーザはConcentUIが不要になるためくログインできるようになります。

現象

1. AAD Application (Mutli Tenant) でユーザがログインする

aadoauthconsetui0010

2. Concent UIが表示できずに以下のエラーが表示される。

AADSTS90093: User cannot consent to web app requesting user impersonation as an app permission.

aadoauthconsetui0020

 

解決方法

1. “prompt=admin_consent” をURL Parmaetert付でApplication(アプリ)を認証します。

例)重要:組織で一度だけでOKです。

https://login.microsoftonline.com/common/oauth2/authorize?response_type=code&prompt=admin_consent&client_id=beebf982-a44d-4f0b-8cc8-c1e3a72ca8ab

2. Global Administrator(全体管理者) でログインします。

aadoauthconsetui0030

 

3. 管理者用のConcent UIが表示されますので組織に承認します。

aadoauthconsetui0040

 

4. 一般のユーザでログインしてもConcent UIが表示されなくなりますので、エラーが表示されなくなります。

 

参考

  1. Azure Active Directory の Common Consent Framework (Client 側)
  2. v2.0 endpoint の OAuth を使った Client 開発 (Azure AD と MSA への対応)
  3. Update to Graph API consent permissions
  4. Managing user consent for applications using Office 365 APIs

監査ログ 保管・検索・レポートサービス for Office365: (Audit Log Search & Report Service)

概要

Microsoft様のOffice365の監査ログ機能に、以下のような機能を追加したWebアプリケーション開発しています。

もうちょっとでリリースします。

目指しているところ

  1. 月次監査レポートの自動化
  2. リアルタイムフックによる脅威への対応
  3. ログに付加情報の追加 (IPアドレスから名前解決等)
  4. 高速検索・レポート(随時ログ情報をクロールしデータベースに保存)

 

Office365の監査ログをクロール(取得)する設定

Auditlog010

詳細監査ログ

Auditlog020

監査ログのグループ化とドリルダウン

Auditlog030

レポート1:日別・人別・操作件数

Auditlog040

 

 

英語学習アプリの作成 PHP + VisualSutdio Code + Azure WebSites+ SQL Server

概要

PHPで英語学習サービスのアプリを作っています!

日々Azureざんまいですが、Azureではすこし違和感のある「PHP」をAzure WebSitesでホスティングしています。

しかし、

PHPの作成にも、「VisualStudio Code」が使用できるんです!!

 

Visual Sutdo Code!

Visual Sutdio Codeはこんな画面です!!

こんな感じでPHPだっていけちゃいます!!

PHPでもインテリセンス絶好調です!!

eigoVSCode

 

PHPアプリはこんな感じです!!

eigoPHP