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の問題なようなので調査中です。

備忘録 -デバック時に2つのプロジェクトが起動しなくなったら-

デバック時にアプリがうまく起動しなくなる。

以下のようにデバック時うまく起動しない場合があります。(アプリのIISが起動していない。)

VS2Project005

Visual studio 2012でApps for Office で新規プロジェクトを作成すると

以下のように2つプロジェクト作成されますが、

VS2Project010

以下のような操作をすると、、デバック時に1つのプロジェクトしか起動しなくなります。

  1. プロジェクトの上で右クリックで、[スタートアッププロジェクトに設定]
  2. ASPXファイルやHTMLファイルの上で右クリックで、[スタートページに設定]
  3. 新規プロジェクト追加

そんなときは設定を修正します。

設定修正方法

[ソリューション][右クリック][プロパティ]

VS2Project020

以下のように[シングルスタートアッププロジェクト]になている

VS2Project030

以下のように[マルチスタートアッププロジェクト]に修正する。

VS2Project040

Office用アプリではデバック時に指定Webページを起動しなくていいので、ページを起動しないように、「ページを開かずに外部アプリケーションからの要求を待つ」に設定する。

VS2Project050

ノートパソコンのVista がパフォーマンス(速度)が遅いので考えられる速度改善の設定をやってみた。

よくなりましので、メモしておきます。

  1. Windows Vista Service Pacek 1 を適用(1時間ぐらい)
  2. Windows Vista Service Pacek 2 を適用(1時間ぐらい)
  3. 動きが遅い
    1. Vista をパフォーマンス優先にする。(視聴覚エフェクトなくなりださくなるけど。)
      1. [コンピュータ]を右クリック、[プロパティ]選択
      2. [システムの詳細設定]を選択[詳細]タブ
      3. [パフォーマンス][設定]
      4. [パフォーマンスを優先する]
    2. (必要なら)[コントロールパネル][電源オプション]を[省電力][バランス][パフォーマンス][カスタム]に変更
      参考:http://freesoft.tvbok.com/tips/optimise_vista/speedup-4tips.html
    3. デスクトップのアイコンを削除する。
    4. デスクトップ背景を単色にする。
    5. (必要なら)サービス無効
      参考:http://mikasaphp.net/vista_p2.html

      1. Windows Search
      2. Destop Window Manager Session Manager
      3. FAX
      4. Ready Boost(逆にメモリ少ないパソコンには有効)
        http://trendy.nikkeibp.co.jp/article/col/20061120/119794/?rt=nocnt
  4. 起動が遅い
    1. (必要なら)スーパーフェッチをオフにする。
      1. [コントロールパネル][システムとメンテナンス][管理ツール][サービス]
      2. [SuperFetch][全般] タブ[スタートアップの種類][無効]にする。
  5. 可能ならハードディスクをSSDに換装

参考: