OAuth: login failed No such service Auth0
dokuwiki\plugin\oauth\Exception at /var/www/dokuwiki/lib/plugins/oauth/OAuthManager.php:312
#0 /var/www/dokuwiki/lib/plugins/oauth/OAuthManager.php(26): dokuwiki\plugin\oauth\OAuthManager->loadService() #1 /var/www/dokuwiki/lib/plugins/oauth/action/login.php(70): dokuwiki\plugin\oauth\OAuthManager->startFlow() #2 /var/www/dokuwiki/inc/Extension/EventHandler.php(80): action_plugin_oauth_login->handleStart() #3 /var/www/dokuwiki/inc/Extension/Event.php(75): dokuwiki\Extension\EventHandler->process_event() #4 /var/www/dokuwiki/inc/Extension/Event.php(133): dokuwiki\Extension\Event->advise_before() #5 /var/www/dokuwiki/inc/Extension/Event.php(200): dokuwiki\Extension\Event->trigger() #6 /var/www/dokuwiki/doku.php(125): dokuwiki\Extension\Event::createAndTrigger() #7 {main}

pairwise-id

Pseudoidentifikátor, který obsahuje „scope“ organizace (scoped), není očividně svázán s konkrétním uživatelem (opaque), je nepřenositelný na jiného uživatele (not reassignable) a je cílený na jednu službu (targeted).

Popis vlastností naleznete na wiki Shibbolethu.

Podrobné informace na wiki OASIS.

  • SAML2: urn:oasis:names:tc:SAML:attribute:pairwise-id

NQ4VOTLQJFDHM32BKZHUMWCVFNAUCMSE@example.org

Určený jako náhrada za zastaralé identifikátory jako eduPersonTargetedID a SAML 2.0 persistentní NameID z důvodu jejich problémů s velikostí písmen a také implementační komplexitou.

Hodnoty atributů algorithm a encoding v elementu <DataConnector> se berou z conf/saml-nameid.properties, hodnota salt se bere z credentials/secrets.properties.

S výhodou zde využíváme atributu unstructuredName jako vstupní hodnotu pro výpočet atributu pairwise-id.

Bylo by možné (podobně jako v případě eduPersonTargetedID/persistentního NameID) ukládat vypočítané hodnoty do databáze. S databází vypočítaných identifikátorů je pak možné dělat užitečné ale i nevhodné věci, jako např. recyklovat atribut, který se recyklovat nesmí.

Doporučujeme tedy identifikátory spíše počítat při každém přihlášení uživatele a být tak nucen neměnitelné atributy opravdu nikdy neměnit.

<AttributeDefinition xsi:type="Scoped" id="samlPairwiseID" scope="%{idp.scope}">
    <InputDataConnector ref="computed" attributeNames="computedId"/>
</AttributeDefinition>
 
<DataConnector id="computed"
    xsi:type="ComputedId"
    excludeResolutionPhases="c14n/attribute"
    generatedAttributeID="computedId"
    salt="%{idp.persistentId.salt}"
    algorithm="%{idp.persistentId.algorithm:SHA}"
    encoding="%{idp.persistentId.encoding:BASE32}">
        <InputAttributeDefinition ref="unstructuredName"/>
</DataConnector>