[Sitecore][Azure AD B2C] Azure AD B2C その他

2017050812am_01

パスワードのリセットポリシー

パスワードのリセットポリシーについては、特に問題がなかった。基本的にリセットの制御はAzure側で処理されています。これはユーザーに自分でパスワードをリセットさせています。もし、管理者としてはAzureにてパスワードのリセットができます。もし、コードで、リセットをする必要があれば、OWINもしくはGraph APIにてリセットすればいい。

カスタマイズ

それぞれ、UIカスタマイズ対応の画面のカスタマイズについて、
下記の記事にて詳細なステップが書かれています。

ページのユーザー インターフェイス (UI) カスタマイズ機能を試すために使用するヘルパー ツール

ユーザー インターフェイス (UI) のカスタマイズ

📝学んだ事:😵UIカスタマイズファイルをどこに置けばいいの?

上記の記事にてユーザー インターフェイス (UI)のカスタマイズのファイルをAzureBlobストレージにて保管と書かれていますが、これは別にどこにおいて構いません。唯一の要求はHTTPSでそのファイルへのアクセスが CORS に対応していればいい。日本語にてCORS制御に関する記事がたくさんあり、英語版はこちら.

2017050812am_02

ローカルでテストをする際に下記のエラーが表示されたことがありました。

2017050812am_03

これはHTTSを使用しているにもかからわず、有効なHTTPS証明書を使用していないからです。ブラウザでカスタマイズのページへ一度アクセスし、Chromeなら、下記の画面で一度カスタマイズのページをブラウザにてキャッシュすればいいです。

2017050812am_04

ログアウト

ログアウトは一番簡単だと思っていましたがサイトコアと統合でバーチャルユーザーとの同期をとらなければなりません。下記は私が学んだことです。

📝学んだ事:😵バーチャルユーザーのプロファイル情報更新されない。。。

QAから、違うユーザーを使った同じブラウザでテストをする際にユーザーの情報が更新されていないといわれました。ユーザーがログアウトをクリックしたら、まず、セッションをクリアします。

Session.Clear();
Session.Abandon():
Session.RemoveAll();

次に、バーチャルユーザーをサイトコアからログアウトします。

AuthenticationManager.Logout();

これで情報が更新されるはずだけど、もっとみれば、ユーザー情報がMongoDBより
読み取っているので、ユーザーをサイトコアそして、Azureからログアウトした際に
xDBからMongoDBにデータをフラッシュするのを忘れていました。そのため、
新しいログインしたユーザーの情報が表示されなかった。

サイトコア、Azureからログアウト処理にて、xDBからMongoDBにデータ
をフラッシュすればいい。

Sitecore.Analytics.Tracker.Current.EndTracking();
HttpContext.Current.Session.Abandon();
📝学んだ事:😵サイトコアのタイムアウトでバーチャルユーザーがサイトコアからログアウトされたけど、Azureからログアウトされていない。

一度サイトコアにログリンしたユーザーがもし、なにもせず、ブラウザを開いたままでセッションタイムアウトでログアウトされます。しかし、Azureからログアウトされていない。この際に再度ログインすると、Azureのログイン画面が表示せず、既存のAzureのコネクション使用されます。
対策として、サイトコアのsessionEndイベントまたはsessionEndパイプラインにてAzureからログアウトればいいです。

例えば、sessionEndパイプラインの場合、
\App_Config\Include\Sitecore.Analytics.Tracking.configにて パイブラインを追加し、

public class AzureAdB2cSessionEndLogOut
{
    public void Process(SessionEndArgs args)
    {
        Assert.ArgumentNotNull(args, "args");
        Log.Info("Azure AD B2C LogOut", this);
    }
}

web.configにてタイムアウトを一分に設定して、テストすればいい。

<sessionState mode="InProc" cookieless="false" timeout="1"

 

Uncategorized