A není všechno kontakt, co se tak tváří :-) Mě totálně nepochopitelně. Nové ADFS 3.0 na Windows 2012 R2 si ukládá určité konfigurační údaje do Active Directory, do kontejneru CN=ADFS,CN=Microsoft,CN=Program Data,DC=x. Ukládá si to tam ve formě kontaktů (contact). Jako kdyby nemohli prostě rozšířit schéma o nějaký nový druh objektu a vlastní atributy.
Takže potom v těch contact objektech se používají atributy jako l, givenName a thumbnailPhoto. Prostě hnůj.
Co je nejzajímavější je atribut thumbnailPhoto. Normálně je to bajtová hodnota (octet string) obsahující fotku.
V případě AD FS 3.0 je to jenom přesně 32 byte a obsahuje to AES 256bit šifrovací klíč, kterým jsou zašifrovány privátní klíče (private key) self-signed certifikátů pro token-signing a token-encryption/token-decryption. Tyto certifikáty (tedy jenom pokud se jedná o self-signed certifikáty, které si generuje ADFS samo) i s privátními klíči jsou totiž uloženy v SQL databázi ADFS.
Je jedno, jestli se jedná o centrální SQL Server, nebo jenom WID (Windows Internal Database). AD FS si self-signed certifikáty ukládá přímo v databázi, takže nejsou vidět v normálním úložišti certifikátů. Má tam i soukromé klíče. Aby se ty soukromé klíče jen tak nepovalovaly v databázovém souboru na disku, jsou zašifrované symetrickým AES256 klíčem.
Předpokládá se, že máte farmu několika ADFS serverů. Všechny musí být schopny privátní klíče z databáze dostat. Databáze je buď jenom jedna v plnohodnotném SQL serveru, ale případě, že máte WID databázi, tak ta je na každém AD FS serveru samostatná a sekundární AD FS servery si stahují její "repliku" přes nezašifrované HTTP SOAP z primárního ADFS serveru (URL jako například toto http://primaryadfs.gopas.virtual/adfs/services/policystoretransfer.
Takže se to dělá tak, že ten AES klíč je uložen v AD, kde ho může číst jenom servisní účet té dané ADFS farmy (a samozřejmě členové skupiny Domain Admins).
Z bezpečnostního hlediska to není velká tragédie, i když celá bezpečnost tohoto klíče stojí pouze na AD LDAP oprávněních (permissions) a klíče se replikují i do RODC například. To ale moc nevadí, protože ten AES klíč sám o sobě není na nic. Citlivé jsou až jím zašifrované privátní klíče pro token-signing certifikát a k těm byste museli mít fyzický přístup na databázový server.