PowerShellシングルサインオン(SSO)サービスに興味があって、一時期色々サービスを試していました。DirectoryのSSOを使うことにしました。用途としては、主にTableauのログインに使っています。設定してから1ヶ月ほど経ったころに、Tableauにログインできなくなることがチラホラ起こるようになりました。具体的には、Tableauのログインページからログインしようとしても、すぐに元のTableauのログインページに戻ってログインができません。試したところ、一度Office365をログアウトして、再度Office365にログインすると直りました。Tableauに問い合わせいかにも他でも起こっていそうな事象だったので、TableauにWebで問い合わせると、すぐに電話がかかってきて、下記の記事を教えて頂きました。早い!https://community.tableau.com/thread/260782原因Office365にログインすると、トークンが発行され、そのトークンはブラウザに保存されて再利用され、次回以降のログインが不要になります。トークンが永久に使えるとセキュリティー的に問題があるため、トークンには有効期限が決まっていて、有効期限が切れた場合は再度ログインして、トークンを新しく取得し直します。有効期限より短かったためでした。Directoryではまだ期限が切れておらず有効なトークンなのに、Tableauでは期限切れとなっているため無効なトークンとして弾かれ、ログインできなくなっていました。Directoryのトークンの有効期限は90日、一方Tableauの有効期限は24日なため、丁度SSOを使い始めてからログインできない現象が起こり始めた時期と一致します。トークンが更新されるようにします。設定方法は、サポートで教えて頂いた記事の中にもリンクがあるのですが、下記のマイクロソフトのドキュメントを参考にしました。docs.microsoft.comここでは、自分がハマった点も踏まえて、ザックリやり方を記します。ADモジュールを使ってコマンドで設定します。PowerShellモジュール」をインストールします。Directoryに接続します。Directoryとして、テナントIDを指定して接続します。Directoryのポータルから[プロパティ]-[ディレクトリID]で確認できます。Directoryに対してコマンドが発行できるようになります。Directoyの用語と構成について簡単に説明します。https://docs.microsoft.com/ja-jp/azure/active-directory/develop/app-objects-and-service-principalsアプリケーションとサービスプリンシパル同じサービスに対するSSOでも、複数のアプリを作成して、個別に設定することができます。Tableauの場合、複数のサイトが持てるので、サイト毎にアプリを追加して、追加したアプリ個々に対して設定をします。このTableauなどといった、大本の雛形になるサービスのことを「アプリケーション」とよび、個々に作成したアプリのことを「サービスプリンシパル」と呼びます。トークンの有期限は、「アプリケーション」ではなく、追加したアプリ、つまり「サービスプリンシパル」に対して行います。ポリシーサービスプリンシパルに直接トークンの有効期限の設定をすることはできません。そのポリシーを、設定したい「サービスプリンシパル」に割り当てることにより、サービスプリンシパルのトークンの有効期限を設定します。手順ポリシー作成JSONで有効期限の値(今回は24日間)を設定し、New-AzureADPolicyでポリシーを作成します。"TokenLifetimePolicy"スクリプトを書いて実行します。.\create_policy.ps1ポリシー割り当て作成したポリシーをAdd-AzureADServicePrincipalPolicyで、サービスプリンシパルに割り当てます。ポリシーとサービスプリンシパルはIDで指定する必要があるので、それぞれ名前からオブジェクトを取得して、そのオブジェクトからIDを取り出しています。$policy.Id以上で、アプリ、つまりサービスプリンシパルに有効期限が設定できます。念の為、ポリシーが作成されて、サービスプリンシパルに割り当てられているか確認します。参考までに、サービスプリンシパルのポリシー割り当ての解除と、ポリシー削除方法を記載します。($policy).Id感想などSSOのアプリを追加した時に、サービスに合わせて有効期限をよしなに自動設定されているものかと思っていたのですが、そうじゃないんですね。どんなアプリでもデフォルトの有効期限が90日固定になってしまう仕様だと、Tableau以外のサービスでもログインできなくなるエラーが頻発しそうですが大丈夫なんでしょうかね?試しにいくつか他のアプリも追加してみたのですが、どれもアプリに適したポリシーの割り当てはされてなさげでした。CLIではなく、PowerShellで設定するところが、突貫かつ、マイクロソフト的には本当は触って欲しくないけど致し方なく公開しているような雰囲気が漂っていて...。アプリ毎にポリシーが自動で割り当てられて、Azureポータル上で細かい設定ができるようになりそうな雰囲気がしています。(1)スターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。