前回(...
ココ)の続きになるんでしょうか?今回は、某ペイの件で若干話題となった「Pairwise Pseudonymous Identifier (PPID)」について調べてみました。
PPIDは、OIDCやSAMLの仕様中にもあって、夫々、Pairwise(OIDC)、Persistent Identifier(SMAL)などの用語で説明されています。この仕様を読んでいるので、存在は知っていましたが、現状、某弊、汎用認証サイトで未サポートだったりします。
...で、結論としては、サポートはあったほうが良い。と言う事です。しかし、どちらかと言えば、この派生の、sub=email問題の方が大きく、
- フリーメール等が許容される場合
- Hybrid-IdPを構築する場合(厳密にID連携する場合)
...は、useridのクレームも返すベキで(現時点でuseridスコープでuseridを返す実装がある)、コレに対して、Pairwiseを実装すれば良いだろうと思います。
(通常は、トークン検証が済めばアプリケーションにログインして良いが、2つのUserStoreのIDを関連付ける、ID連携の時は、トークン検証後、ローカルuseridと連携useridを紐付ける必要がある)。
一応、Microsoft、Google、Facebook、Twitterアカウントでの外部ログインを行うOwin.Security系ライブラリでは、useridを使用してるのと、過去にHybrid-IdPを構築したケースでは、useridを使用してるので問題は無いです。
...が、汎用認証サイト同士のHybrid-IdP実装には一部修正した方が良い点がありそうです。...と言うことで issue を登録しました。