Toru 2829 10 2014 Pseudoanonimowy identyfikator uytkownika Maja
- Slides: 19
Toruń 28/29. 10. 2014 Pseudoanonimowy identyfikator użytkownika Maja Górecka-Wolniewicz mgw@umk. pl
Przekazywanie przez Id. P informacji o użytkowniku • Po udanym uwierzytelnieniu Id. P może przekazać do SP dodatkowe informacje o użytkowniku – Id. P korzysta ze wskazanego źródła danych w celu pobrania informacji o użytkowniku, konfiguracja Id. P ustala, jakie atrybuty mogą być udostępniane (zbiór A) – podczas rejestracji SP w federacji wskazywane są wymagania SP odnośnie atrybutów, w metadanych SP powinny być wymienione atrybuty, z których SP korzysta (zbiór B) – SP otrzymuje przekrój zbiorów A i B • Id. P powinien wysyłać do SP tzw. pseudoanonimowy identyfikator, który jest unikatowy dla danego użytkownika w odniesieniu do tej usługi (SP)
edu. Person. Targeted. ID / persistent Id • Schemat edu. Person definiuje atrybut edu. Person. Targeted. ID (urn: oid: 1. 3. 6. 1. 4. 1. 5923. 1. 10) jako – A persistent, non-reassigned, opaque identifier for a principal czyli – identyfikator stały (nie zmieniający się przy kolejnych logowaniach), niepowtarzalny, przezroczysty, czyli nie ujawniający tożsamości użytkownika
Format persistent ID • Identyfikator ma format określany w SAML 2 jako "urn: oasis: names: tc: SAML: 2. 0: nameid-format: persistent" • Specyfikacja OASIS Assertions and Protocols for the OASIS Security Assertion Markup Language (SAML) V 2, w rozdziale 8. 3. 7 definiuje Persistent Identifier następująco: – jest to stały, transparentny identyfikator, specyficzny dla danego użytkownika, Id. P oraz SP lub stowarzyszenia SP (affiliation) – identyfikator MUSI być generowany przez Id. P przy użyciu liczby losowej nie mającej żadnego powiązania z identyfikatorem użytkownika – długość identyfikatora nie może przekroczyć 256 znaków
edu. Person. Targeted. ID a persistent Id • Atrybut edu. Person. Targeted. ID został zdefiniowany na potrzeby tworzenia trwałego identyfikatora w Shibboleth, gdy korzystano jeszcze z SAML 1. 1 • Wartość edu. Person. Targeted. ID była przekazywana jako wartość atrybutu SAML • Obecnie rekomendowanym sposobem przekazywania trwałego identyfikatora do SAML 2. 0 SP jest umieszczanie go w elemencie Subject przekazywanego poświadczenia (assertion)
Przekazywanie persistent ID w elemencie Subject <saml 2: Subject> <saml 2: Name. ID xmlns: saml 2="urn: oasis: names: tc: SAML: 2. 0: assertion" Format="urn: oasis: names: tc: SAML: 2. 0: nameidformat: persistent" Name. Qualifier="https: //idp. example. org/idp/shibboleth" SPName. Qualifier="https: //sp. example. org/shibbol eth"> 84 e 411 ea-7 daa-4 a 57 -bbf 6 -b 5 cc 52981 b 73 </saml 2: Name. ID> </saml 2: Subject>
persistent ID jako atrybut SAML 2. 0 • Alternatywne podejście to przekazanie persistent ID jako atrybutu o nazwie formalnej "urn: oid: 1. 3. 6. 1. 4. 1. 5923. 1. 10 " <saml 2: Attribute xmlns: saml 2="urn: oasis: names: tc: SAML: 2. 0: assertion" Name. Format="urn: oasis: names: tc: SAML: 2. 0: attrname-format: uri" Name="urn: oid: 1. 3. 6. 1. 4. 1. 5923. 1. 10" Friendly. Name="edu. Person. Targeted. ID"> <saml 2: Attribute. Value> <saml 2: Name. ID Format="urn: oasis: names: tc: SAML: 2. 0: nameid-format: persistent" Name. Qualifier="https: //idp. example. org/idp/shibboleth" SPName. Qualifier="https: //sp. example. org/shibboleth"> 84 e 411 ea-7 daa-4 a 57 -bbf 6 -b 5 cc 52981 b 73 </saml 2: Name. ID> </saml 2: Attribute. Value> </saml 2: Attribute>
Shibboleth Id. P • Tworzenie trwałego identyfikatora przebiega następująco: – przygotowujemy konektor do bazy danych (data connector) o nazwie Stored. ID – służy on do tworzenia / pobierania wartości – utworzenie definicji atrybutu operującego na Stored. ID • Tworzymy bazę danych o nazwie shibboleth bazie danych i tablicę shibpid i dostosowujemy plik konfiguracji Shibboleth Id. P – conf/attribute-resolver. xml
Tablica do przechowywania identyfikatorów CREATE TABLE IF NOT EXISTS shibpid ( local. Entity TEXT NOT NULL, peer. Entity TEXT NOT NULL, principal. Name VARCHAR(255) NOT NULL DEFAULT '', local. Id VARCHAR(255) NOT NULL, persistent. Id VARCHAR(36) NOT NULL, peer. Provided. Id VARCHAR(255) DEFAULT NULL, creation. Date timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, deactivation. Date TIMESTAMP NULL DEFAULT NULL, KEY persistent. Id (persistent. Id), KEY persistent. Id_2 (persistent. Id, deactivation. Date), KEY local. Entity (local. Entity(16), peer. Entity(16), local. Id), KEY local. Entity_2 (local. Entity(16), peer. Entity(16), local. Id, deactivation. Date) ) ENGINE=My. ISAM DEFAULT CHARSET=utf 8;
Data. Connector <resolver: Data. Connector xsi: type="dc: Stored. Id" xmlns="urn: mace: shibboleth: 2. 0: resolver: dc" id="stored. ID" source. Attribute. ID="edu. Person. Principal. Name" generated. Attribute. ID="persistent. Id" salt="1 qaasfkdakdakakakagkalkg"> <resolver: Dependency ref="my. LDAP" /> <dc: Application. Managed. Connection jdbc. Driver="com. mysql. jdbc. Driver" jdbc. URL="jdbc: mysql: //localhost: 3306/shibboleth? auto. Recon nect=true" jdbc. User. Name="shibboleth" jdbc. Password="zaq. WSX 12" /> </resolver: Data. Connector>
Definicja atrybutu <resolver: Attribute. Definition xsi: type="ad: SAML 2 Name. ID" id="edu. Person. Targeted. ID" source. Attribute. ID="persistent. Id" name. Id. Format= "urn: oasis: names: tc: SAML: 2. 0: nameid-format: persistent"> <resolver: Dependency ref="stored. ID" /> <resolver: Display. Name xml: lang="en"> Targeted ID </resolver: Display. Name> <resolver: Display. Name xml: lang="pl"> Targeted ID </resolver: Display. Name>
Definicja atrybutu <resolver: Display. Description xml: lang="en"> Targeted ID: A unique identifier for a person, different for each service provider. </resolver: Display. Description> <resolver: Display. Description xml: lang="pl"> Targeted ID: identyfikator specyficzny dla danego SP </resolver: Display. Description> <resolver: Attribute. Encoder xsi: type="enc: SAML 2 XMLObject" name="urn: oid: 1. 3. 6. 1. 4. 1. 5923. 1. 10" friendly. Name="edu. Person. Targeted. ID" /> </resolver: Attribute. Definition>
Definicja atrybutu <resolver: Attribute. Definition id="persistent. Id" xsi: type="ad: Simple" source. Attribute. ID="persistent. Id"> <resolver: Dependency ref="stored. ID"/> <resolver: Attribute. Encoder xsi: type="enc: SAML 2 String. Name. ID" name. Format= "urn: oasis: names: tc: SAML: 2. 0: nameid-format: persistent" /> </resolver: Attribute. Definition>
<resolver: Attribute. Definition xsi: type="ad: SAML 2 Name. ID" id="edu. Person. Targeted. ID" source. Attribute. ID="persistent. Id" name. Id. Format="urn: oasis: names: tc: SAML: 2. 0: nameidformat: persistent"> <resolver: Dependency ref="stored. ID" /> <resolver: Display. Name xml: lang="en">Targeted ID</resolver: Display. Name> <resolver: Display. Name xml: lang="pl">Targeted ID</resolver: Display. Name> <resolver: Display. Description xml: lang="en"> Targeted ID: A unique identifier different for each SP </resolver: Display. Description> <resolver: Display. Description xml: lang="pl"> Targeted ID: unikatowy identyfikator specyficzny dla SP </resolver: Display. Description> <resolver: Attribute. Encoder xsi: type="enc: SAML 2 XMLObject" name="urn: oid: 1. 3. 6. 1. 4. 1. 5923. 1. 10" friendly. Name="edu. Person. Targeted. ID" /> </resolver: Attribute. Definition>
Simple. SAMLphp Id. P • Atrybuty edu. Person. Targeted. ID/persistent. ID są generowane przez dodawany przez dedykowane filtry: – saml: Persistent. Name. ID – generuje identyfikator persistent Id o formacie urn: oasis: names: tc: SAML: 2. 0: nameidformat: persistent na podstawie wskazanego atrybutu oraz wartości secretsalt ustalonej w pliku config/config. php – saml: SQLPersistent. Name. ID – generuje identyfikator persistent Id i umieszcza go w bazie danych SQL – SSP musi mieć skonfigurowany dostęp do zasobów SQL, w tym celu należy ustawić w pliku config/config. php opcję store. type 'store. type' => 'sql',
SSP – generowanie persistent. Id / edu. Person. Targeted. ID 'authproc. idp' => array( 1 => array( 'class' => 'saml: SQLPersistent. Name. ID', 'attribute' =>'edu. Person. Principal. Name', 'Allow. Create' => "true" ),
90 => array( 'class' => 'consent: Consent', 'store' => 'consent: Cookie', 'focus' => 'yes', 'checked' => TRUE ), 95 => array( 'class' => 'saml: Persistent. Name. ID 2 Targeted. ID' , 'attributename' => 'edu. Person. Targeted. ID', 'name. Id' => TRUE ), 100 => array( 'class' => 'core: Attribute. Map', 'name 2 oid'), ),
edu. Person. Targeted. Id parametr attributeencodings • edu. Person. Targeted. ID powinien być wysyłany w postaci Name. ID, w tej sytauacji trzeba zadeklarować w metadata/saml 20 -idp-hosted. php: 'attributeencodings' => array( 'urn: oid: 1. 3. 6. 1. 4. 1. 5923. 1. 10' => 'raw', ), – raw oznacza, że atrybuty mają być przekazywane bez żadnej modyfikacji, dzięki temu jest możliwe przekazywanie odpowiedzi w postaci XML
- 2829 elysian fields avenue
- La maja del espejo
- La maja de goya
- Toru sakaguchi
- Toru�� praca
- Power sum acr
- Corafiya
- Toru iijima
- Taş bebek yüzü von gierke
- Sisendlogistika
- Katarzyna lewicka
- Plasenta sirkumvallata
- Toru dutt
- Siringomeli
- Maja cederlund
- Anorhie
- Witaj majowa jutrzenko
- Primjer holistickog marketinga
- Maja šeruga
- Alkohol