Skip to Content
API ReferenceAuth (OIDC)

Auth OIDC

Auth hizmeti, Solidus merkeziyetsiz kimlikleri tarafından desteklenen bir OpenID Connect (OIDC) sağlayıcısıdır. Uygulamalar, kullanıcıların kimliğini doğrulamak için standart OIDC akışlarını kullanır ve DID tabanlı özne tanımlayıcılarına sahip JWT token’ları alır.

Temel URL: https://auth.solidus.network


Keşif

OpenID Yapılandırması

Desteklenen tüm uç noktaları ve özellikleri içeren OIDC Keşif belgesini döndürür.

GET /.well-known/openid-configuration

Kimlik doğrulama: Yok

curl https://auth.solidus.network/.well-known/openid-configuration
// Response 200 { "issuer": "https://auth.solidus.network", "authorization_endpoint": "https://auth.solidus.network/authorize", "token_endpoint": "https://auth.solidus.network/token", "userinfo_endpoint": "https://auth.solidus.network/userinfo", "introspection_endpoint": "https://auth.solidus.network/introspect", "revocation_endpoint": "https://auth.solidus.network/revoke", "jwks_uri": "https://auth.solidus.network/.well-known/jwks.json", "scopes_supported": ["openid", "profile", "email", "did"], "response_types_supported": ["code"], "grant_types_supported": ["authorization_code", "refresh_token"], "subject_types_supported": ["public"], "id_token_signing_alg_values_supported": ["EdDSA"], "code_challenge_methods_supported": ["S256"], "token_endpoint_auth_methods_supported": ["client_secret_post", "client_secret_basic"] }

JSON Web Anahtar Kümesi

ID token’larını doğrulamak için kullanılan açık anahtarları döndürür. Solidus, token imzalama için EdDSA (Ed25519) kullanır.

GET /.well-known/jwks.json

Kimlik doğrulama: Yok

// Response 200 { "keys": [ { "kty": "OKP", "crv": "Ed25519", "x": "7Hk3mRtQZvXp2nBw9Lj4KxYm8...", "kid": "solidus-auth-key-1", "use": "sig", "alg": "EdDSA" } ] }

Yetkilendirme

Yetkilendir

Bir yetkilendirme kodu akışı başlatın. Kullanıcının tarayıcısını bu uç noktaya yönlendirin. Kullanıcı kimlik doğrulamasından ve onayından sonra (veya birinci taraf uygulamalar için otomatik onaydan sonra), redirect_uri’nize bir yetkilendirme koduyla birlikte geri yönlendirilirler.

GET /authorize

Kimlik doğrulama: Yok (tarayıcı yönlendirmesi)

Query ParamTypeRequiredDescription
response_typestringEvetcode olmalıdır
client_idstringEvetKayıtlı istemci kimliğiniz
redirect_uristringEvetYetkilendirmeden sonra yönlendirilecek URL
scopestringEvetBoşlukla ayrılmış kapsamlar: openid, profile, email, did
statestringEvetCSRF koruması için opak (opaque) değer
noncestringHayırYeniden oynatma koruması için ID token’a dahil edilen değer
code_challengestringEvetPKCE meydan okuması (kod doğrulayıcının Base64URL kodlanmış SHA-256’sı)
code_challenge_methodstringEvetS256 olmalıdır
GET https://auth.solidus.network/authorize? response_type=code& client_id=solidus-identity& redirect_uri=https://identity.solidus.network/auth/callback& scope=openid profile email did& state=abc123xyz& nonce=n-0S6_WzA2Mj& code_challenge=E9Melhoa2OwvFrEMTJguCHaoeK1t8URWbuGJSstw-cM& code_challenge_method=S256

Başarılı yönlendirme:

https://identity.solidus.network/auth/callback?code=auth_code_7Hk3mRtQ&state=abc123xyz

Hata yönlendirmesi:

https://identity.solidus.network/auth/callback?error=access_denied&error_description=User+denied+consent&state=abc123xyz

Birinci Taraf Otomatik Onay

Kayıtlı birinci taraf istemciler onay ekranını atlar. Kullanıcı kimlik doğrulamasından geçer ve bir yetkilendirme koduyla hemen yönlendirilir. Şu anki birinci taraf istemciler:

Client IDApplication
solidus-identityKimlik cüzdanı
solidus-verifyVerify kontrol paneli

Üçüncü taraf istemciler, kullanıcının istenen kapsamları onayladığı bir onay ekranı gösterir.


Token Değişimi

Yetkilendirme Kodunu Değiştir

Bir yetkilendirme kodunu token’larla değiştirin.

POST /token

Kimlik doğrulama: Yok (istemci, gövde veya Basic auth üzerinden kimlik doğrular)

İçerik Türü: application/x-www-form-urlencoded

curl -X POST https://auth.solidus.network/token \ -H "Content-Type: application/x-www-form-urlencoded" \ -d "grant_type=authorization_code" \ -d "code=auth_code_7Hk3mRtQ" \ -d "client_id=solidus-identity" \ -d "client_secret=cs_live_abc123def456..." \ -d "redirect_uri=https://identity.solidus.network/auth/callback" \ -d "code_verifier=dBjftJeZ4CVP-mB92K27uhbUJU1p1r_wW1gFWFOEjXk"
FieldTypeRequiredDescription
grant_typestringEvetauthorization_code olmalıdır
codestringEvetYönlendirmeden gelen yetkilendirme kodu
client_idstringEvetKayıtlı istemci kimliğiniz
client_secretstringEvetİstemci sırrınız
redirect_uristringEvetYetkilendirme isteğindeki yönlendirme URL’siyle eşleşmelidir
code_verifierstringEvetPKCE kod doğrulayıcı (orijinal rastgele dize)
// Response 200 { "access_token": "eyJhbGciOiJFZERTQSIsInR5cCI6ImF0K2p3dCJ9...", "id_token": "eyJhbGciOiJFZERTQSIsInR5cCI6IkpXVCJ9...", "token_type": "Bearer", "expires_in": 3600, "refresh_token": "rt_7Hk3mRtQZvXp2nBw9Lj4K..." }

Token’ı Yenile

Bir yenileme token’ını yeni bir erişim token’ıyla değiştirin.

POST /token

İçerik Türü: application/x-www-form-urlencoded

curl -X POST https://auth.solidus.network/token \ -H "Content-Type: application/x-www-form-urlencoded" \ -d "grant_type=refresh_token" \ -d "refresh_token=rt_7Hk3mRtQZvXp2nBw9Lj4K..." \ -d "client_id=solidus-identity" \ -d "client_secret=cs_live_abc123def456..."
FieldTypeRequiredDescription
grant_typestringEvetrefresh_token olmalıdır
refresh_tokenstringEvetÖnceki bir token değişiminden gelen yenileme token’ı
client_idstringEvetKayıtlı istemci kimliğiniz
client_secretstringEvetİstemci sırrınız
// Response 200 { "access_token": "eyJhbGciOiJFZERTQSIsInR5cCI6ImF0K2p3dCJ9...", "id_token": "eyJhbGciOiJFZERTQSIsInR5cCI6IkpXVCJ9...", "token_type": "Bearer", "expires_in": 3600, "refresh_token": "rt_9Xm4pLkWnR2nBw9Lj4K..." }

Kullanıcı Bilgisi

Kullanıcı Bilgisini Al

Kimlik doğrulaması yapılmış kullanıcı hakkındaki iddiaları alın.

GET /userinfo

Kimlik doğrulama: Bearer token (erişim token’ı)

curl https://auth.solidus.network/userinfo \ -H "Authorization: Bearer eyJhbGciOiJFZERTQSIs..."
// Response 200 { "sub": "did:solidus:testnet:7Hk3mRtQZvXp2nBw9Lj4K", "name": "John Doe", "email": "[email protected]", "email_verified": true, "did": "did:solidus:testnet:7Hk3mRtQZvXp2nBw9Lj4K", "updated_at": 1746619200 }

sub iddiası her zaman kullanıcının DID’idir. Ek iddialar, yetkilendirme sırasında istenen kapsamlara bağlıdır:

ScopeClaims
openidsub
profilename, updated_at
emailemail, email_verified
diddid

Token İç Gözlemi (Introspection)

Token’ı İncele

Bir erişim token’ının veya yenileme token’ının etkin olup olmadığını kontrol edin ve meta verilerini alın.

POST /introspect

Kimlik doğrulama: İstemci kimlik bilgileri (gövde veya Basic auth üzerinden)

İçerik Türü: application/x-www-form-urlencoded

curl -X POST https://auth.solidus.network/introspect \ -H "Content-Type: application/x-www-form-urlencoded" \ -d "token=eyJhbGciOiJFZERTQSIs..." \ -d "client_id=solidus-identity" \ -d "client_secret=cs_live_abc123def456..."
// Response 200 — active token { "active": true, "sub": "did:solidus:testnet:7Hk3mRtQZvXp2nBw9Lj4K", "client_id": "solidus-identity", "scope": "openid profile email did", "token_type": "Bearer", "exp": 1746622800, "iat": 1746619200, "iss": "https://auth.solidus.network" }
// Response 200 — inactive token { "active": false }

Token İptali

Token’ı İptal Et

Bir erişim token’ını veya yenileme token’ını iptal edin. Bir yenileme token’ını iptal etmek, ondan düzenlenmiş tüm erişim token’larını da geçersiz kılar.

POST /revoke

Kimlik doğrulama: İstemci kimlik bilgileri (gövde veya Basic auth üzerinden)

İçerik Türü: application/x-www-form-urlencoded

curl -X POST https://auth.solidus.network/revoke \ -H "Content-Type: application/x-www-form-urlencoded" \ -d "token=rt_7Hk3mRtQZvXp2nBw9Lj4K..." \ -d "client_id=solidus-identity" \ -d "client_secret=cs_live_abc123def456..."
// Response 200 { "message": "Token revoked" }

Uç nokta, token zaten iptal edilmiş veya geçersiz olsa bile, RFC 7009 uyarınca her zaman 200 döndürür.


ID Token Yapısı

ID token’ları EdDSA (Ed25519) ile imzalanır ve standart OIDC iddialarının yanı sıra Solidus’a özgü iddiaları da içerir.

// Decoded ID token payload { "iss": "https://auth.solidus.network", "sub": "did:solidus:testnet:7Hk3mRtQZvXp2nBw9Lj4K", "aud": "solidus-identity", "exp": 1746622800, "iat": 1746619200, "nonce": "n-0S6_WzA2Mj", "name": "John Doe", "email": "[email protected]", "email_verified": true, "did": "did:solidus:testnet:7Hk3mRtQZvXp2nBw9Lj4K" }

ID token’larını JWKS uç noktasından gelen açık anahtarları kullanarak doğrulayın. alg başlığı her zaman EdDSA’dır ve kid başlığı hangi anahtarın kullanıldığını tanımlar.

Last updated on