mirror of
https://github.com/HackTricks-wiki/hacktricks-cloud.git
synced 2026-01-13 21:36:23 -08:00
Translated ['src/banners/hacktricks-training.md', 'src/pentesting-ci-cd/
This commit is contained in:
@@ -4,16 +4,16 @@
|
||||
|
||||
## Cognito
|
||||
|
||||
Amazon Cognito word gebruik vir **authentisering, autorisering, en gebruikersbestuur** in web- en mobiele toepassings. Dit bied gebruikers die buigsaamheid om in te teken of direk met 'n **gebruikersnaam en wagwoord** of indirek deur 'n **derde party**, insluitend Facebook, Amazon, Google, of Apple.
|
||||
Amazon Cognito word gebruik vir **authentisering, magtiging, en gebruikersbestuur** in web- en mobiele toepassings. Dit bied gebruikers die buigsaamheid om direk in te teken met 'n **gebruikersnaam en wagwoord** of indirek deur 'n **derde party**, insluitend Facebook, Amazon, Google, of Apple.
|
||||
|
||||
Sentraal tot Amazon Cognito is twee primêre komponente:
|
||||
|
||||
1. **Gebruikerspoele**: Dit is gidse wat ontwerp is vir jou app-gebruikers, wat **aanmeld- en registrasiefunksies** bied.
|
||||
2. **Identiteitspoele**: Hierdie poele is instrumenteel in **die autorisering van gebruikers om toegang tot verskillende AWS-dienste te verkry**. Hulle is nie direk betrokke by die aanmeld- of registrasieproses nie, maar is van kardinale belang vir hulpbron toegang na authentisering.
|
||||
2. **Identiteitspoele**: Hierdie poele is noodsaaklik vir **magtiging van gebruikers om toegang tot verskillende AWS-dienste te verkry**. Hulle is nie direk betrokke by die aanmeld- of registrasieproses nie, maar is van kardinale belang vir hulpbron toegang na authentisering.
|
||||
|
||||
### **Gebruikerspoele**
|
||||
|
||||
Om te leer wat 'n **Cognito Gebruikerspoel kontroleer**:
|
||||
Om te leer wat 'n **Cognito Gebruikerspoel** is:
|
||||
|
||||
{{#ref}}
|
||||
cognito-user-pools.md
|
||||
@@ -21,7 +21,7 @@ cognito-user-pools.md
|
||||
|
||||
### **Identiteitspoele**
|
||||
|
||||
Om te leer wat 'n **Cognito Identiteitspoel kontroleer**:
|
||||
Om te leer wat 'n **Cognito Identiteitspoel** is:
|
||||
|
||||
{{#ref}}
|
||||
cognito-identity-pools.md
|
||||
@@ -71,13 +71,13 @@ aws cognito-idp get-user-pool-mfa-config --user-pool-id <user-pool-id>
|
||||
## Get risk configuration
|
||||
aws cognito-idp describe-risk-configuration --user-pool-id <user-pool-id>
|
||||
```
|
||||
### Identiteit Pools - Ongeauthentiseerde Enumerasie
|
||||
### Identiteitspoele - Ongeauthentiseerde Enumerasie
|
||||
|
||||
Net **om die Identiteit Pool ID** te weet, mag jy in staat wees om **akkrediteer te verkry van die rol wat aan ongeauthentiseerde** gebruikers gekoppel is (indien enige). [**Kyk hoe hier**](cognito-identity-pools.md#accessing-iam-roles).
|
||||
Net **om die Identiteitspoel-ID** te weet, mag jy in staat wees om **credentials van die rol geassosieer met ongeauthentiseerde** gebruikers te **kry** (indien enige). [**Kyk hoe hier**](cognito-identity-pools.md#accessing-iam-roles).
|
||||
|
||||
### Gebruiker Pools - Ongeauthentiseerde Enumerasie
|
||||
### Gebruikerspoele - Ongeauthentiseerde Enumerasie
|
||||
|
||||
Selfs as jy **nie 'n geldige gebruikersnaam** binne Cognito weet nie, mag jy in staat wees om **te enumereer** geldige **gebruikersname**, **BF** die **wagwoorde** of selfs **'n nuwe gebruiker te registreer** net **om die App kliënt ID** te weet (wat gewoonlik in die bronkode gevind word). [**Kyk hoe hier**](cognito-user-pools.md#registration)**.**
|
||||
Selfs as jy **nie 'n geldige gebruikersnaam** binne Cognito weet nie, mag jy in staat wees om **geldige** **gebruikersname** te **enumerate**, **BF** die **wagwoorde** of selfs **'n nuwe gebruiker te registreer** net **om die App kliënt-ID** te weet (wat gewoonlik in die bronkode gevind word). [**Kyk hoe hier**](cognito-user-pools.md#registration)**.**
|
||||
|
||||
## Privesc
|
||||
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
# Cognito Identity Pools
|
||||
# Cognito Identiteitspoele
|
||||
|
||||
{{#include ../../../../banners/hacktricks-training.md}}
|
||||
|
||||
## Basic Information
|
||||
## Basiese Inligting
|
||||
|
||||
Identiteitspoele speel 'n belangrike rol deur jou gebruikers in staat te stel om **tydelike geloofsbriewe** te **verkry**. Hierdie geloofsbriewe is noodsaaklik vir toegang tot verskeie AWS-dienste, insluitend maar nie beperk tot Amazon S3 en DynamoDB nie. 'n Opmerkelijke kenmerk van identiteitspoele is hul ondersteuning vir beide anonieme gasgebruikers en 'n verskeidenheid identiteitsverskaffers vir gebruikersverifikasie. Die ondersteunde identiteitsverskaffers sluit in:
|
||||
Identiteitspoele speel 'n belangrike rol deur jou gebruikers in staat te stel om **tydelike geloofsbriewe** te verkry. Hierdie geloofsbriewe is noodsaaklik vir die toegang tot verskeie AWS-dienste, insluitend maar nie beperk tot Amazon S3 en DynamoDB nie. 'n Opmerkelijke kenmerk van identiteitspoele is hul ondersteuning vir beide anonieme gasgebruikers en 'n verskeidenheid identiteitsverskaffers vir gebruikersverifikasie. Die ondersteunde identiteitsverskaffers sluit in:
|
||||
|
||||
- Amazon Cognito gebruikerspoele
|
||||
- Sosiale aanmeldopsies soos Facebook, Google, Aanmeld met Amazon, en Meld aan met Apple
|
||||
- Sosiale aanmeldopsies soos Facebook, Google, Aanmeld met Amazon, en Teken in met Apple
|
||||
- Verskaffers wat voldoen aan OpenID Connect (OIDC)
|
||||
- SAML (Security Assertion Markup Language) identiteitsverskaffers
|
||||
- Ontwikkelaar geverifieerde identiteite
|
||||
@@ -43,7 +43,7 @@ Boonop is die diens **cognito-sync** die diens wat toelaat om **hierdie inligtin
|
||||
|
||||
### Tools for pentesting
|
||||
|
||||
- [Pacu](https://github.com/RhinoSecurityLabs/pacu), die AWS eksploitering raamwerk, sluit nou die "cognito\_\_enum" en "cognito\_\_attack" modules in wat die enumerasie van alle Cognito bates in 'n rekening outomatiseer en swak konfigurasies, gebruikersattributen wat vir toegangbeheer gebruik word, ens., merk, en outomatiseer ook gebruikersskepping (insluitend MFA-ondersteuning) en privilige-eskalasie gebaseer op aanpasbare pasattributen, bruikbare identiteits pool akkrediteer, aanneembare rolle in id tokens, ens.
|
||||
- [Pacu](https://github.com/RhinoSecurityLabs/pacu), die AWS eksploitering raamwerk, sluit nou die "cognito\_\_enum" en "cognito\_\_attack" modules in wat die enumerasie van alle Cognito bates in 'n rekening outomatiseer en swak konfigurasies, gebruikersattributen wat vir toegangbeheer gebruik word, ens., merk, en outomatiseer ook gebruikersskepping (insluitend MFA-ondersteuning) en privilige-eskalasie gebaseer op aanpasbare aangepaste attributen, bruikbare identiteits pool akkrediteer, aanneembare rolle in id tokens, ens.
|
||||
|
||||
Vir 'n beskrywing van die modules se funksies, sien deel 2 van die [blog pos](https://rhinosecuritylabs.com/aws/attacking-aws-cognito-with-pacu-p2). Vir installasie instruksies, sien die hoof [Pacu](https://github.com/RhinoSecurityLabs/pacu) bladsy.
|
||||
|
||||
@@ -55,11 +55,11 @@ Pacu (new:test) > run cognito__attack --username randomuser --email XX+sdfs2@gma
|
||||
us-east-2:a06XXXXX-c9XX-4aXX-9a33-9ceXXXXXXXXX --user_pool_clients
|
||||
59f6tuhfXXXXXXXXXXXXXXXXXX@us-east-2_0aXXXXXXX
|
||||
```
|
||||
Voorbeeld cognito\_\_enum gebruik om al die gebruikerspoele, gebruikerspoel kliënte, identiteitspoele, gebruikers, ens. wat sigbaar is in die huidige AWS-rekening, te versamel:
|
||||
Voorbeeld cognito\_\_enum gebruik om al die gebruikerspoele, gebruikerspoel kliënte, identiteitspoele, gebruikers, ens. wat sigbaar is in die huidige AWS-rekening te versamel:
|
||||
```bash
|
||||
Pacu (new:test) > run cognito__enum
|
||||
```
|
||||
- [Cognito Scanner](https://github.com/padok-team/cognito-scanner) is 'n CLI-gereedskap in python wat verskillende aanvalle op Cognito implementeer, insluitend ongewenste rekening skep en identiteitspoel eskalasie.
|
||||
- [Cognito Scanner](https://github.com/padok-team/cognito-scanner) is 'n CLI-gereedskap in python wat verskillende aanvalle op Cognito implementeer, insluitend ongewenste rekeningcreasie en identiteitspoel-eskalasie.
|
||||
|
||||
#### Installasie
|
||||
```bash
|
||||
@@ -69,13 +69,13 @@ $ pip install cognito-scanner
|
||||
```bash
|
||||
$ cognito-scanner --help
|
||||
```
|
||||
For more information check https://github.com/padok-team/cognito-scanner
|
||||
Vir meer inligting, kyk na https://github.com/padok-team/cognito-scanner
|
||||
|
||||
## Toegang tot IAM Rolle
|
||||
|
||||
### Ongeoutentiseerde
|
||||
|
||||
Die enigste ding wat 'n aanvaller moet weet om **AWS kredensiale** in 'n Cognito-toepassing as 'n ongeoutentiseerde gebruiker te **kry**, is die **Identiteit Pool ID**, en hierdie **ID moet hardgecodeer** wees in die web/mobiele **toepassing** sodat dit dit kan gebruik. 'n ID lyk soos volg: `eu-west-1:098e5341-8364-038d-16de-1865e435da3b` (dit is nie bruteforceerbaar nie).
|
||||
Die enigste ding wat 'n aanvaller moet weet om **AWS kredensiale** in 'n Cognito-toepassing as 'n ongeoutentiseerde gebruiker te **kry**, is die **Identiteit Pool ID**, en hierdie **ID moet hardgecodeer** wees in die web/mobiele **toepassing** sodat dit dit kan gebruik. 'n ID lyk soos hierdie: `eu-west-1:098e5341-8364-038d-16de-1865e435da3b` (dit is nie bruteforceerbaar nie).
|
||||
|
||||
> [!TIP]
|
||||
> Die **IAM Cognito ongeoutentiseerde rol wat via geskep is, word** standaard `Cognito_<Identiteit Pool naam>Unauth_Role` genoem.
|
||||
@@ -106,19 +106,19 @@ r = requests.post(url, json=params, headers=headers)
|
||||
|
||||
print(r.json())
|
||||
```
|
||||
Of jy kan die volgende **aws cli commands** gebruik:
|
||||
Of jy kan die volgende **aws cli-opdragte** gebruik:
|
||||
```bash
|
||||
aws cognito-identity get-id --identity-pool-id <identity_pool_id> --no-sign
|
||||
aws cognito-identity get-credentials-for-identity --identity-id <identity_id> --no-sign
|
||||
```
|
||||
> [!WARNING]
|
||||
> Let daarop dat 'n nie-geverifieerde cognito **gebruiker GEEN toestemming kan hê nie, selfs al is dit via 'n beleid toegeken**. Kontroleer die volgende afdeling.
|
||||
> Let daarop dat 'n nie-geverifieerde cognito **gebruiker GEEN toestemming kan hê nie, selfs al is dit via 'n beleid toegeken**. Kyk na die volgende afdeling.
|
||||
|
||||
### Verbeterde vs Basiese Verifikasievloei
|
||||
|
||||
Die vorige afdeling het die **standaard verbeterde verifikasievloei** gevolg. Hierdie vloei stel 'n **beperkende** [**sessiebeleid**](../../aws-basic-information/#session-policies) in vir die IAM rol sessie wat gegenereer is. Hierdie beleid sal slegs toelaat dat die sessie [**die dienste van hierdie lys gebruik**](https://docs.aws.amazon.com/cognito/latest/developerguide/iam-roles.html#access-policies-scope-down-services) (selfs al het die rol toegang tot ander dienste).
|
||||
|
||||
Daar is egter 'n manier om dit te omseil; as die **Identiteitspoel "Basiese (Klassieke) Vloei" geaktiveer het**, sal die gebruiker in staat wees om 'n sessie te verkry met behulp van daardie vloei wat **nie daardie beperkende sessiebeleid sal hê nie**.
|
||||
Daar is egter 'n manier om dit te omseil, as die **Identiteitspoel "Basiese (Klassieke) Vloei" geaktiveer het**, sal die gebruiker in staat wees om 'n sessie te verkry met behulp van daardie vloei wat **nie daardie beperkende sessiebeleid sal hê nie**.
|
||||
```bash
|
||||
# Get auth ID
|
||||
aws cognito-identity get-id --identity-pool-id <identity_pool_id> --no-sign
|
||||
@@ -135,21 +135,21 @@ aws sts assume-role-with-web-identity --role-arn "arn:aws:iam::<acc_id>:role/<ro
|
||||
|
||||
> `An error occurred (InvalidParameterException) when calling the GetOpenIdToken operation: Basic (classic) flow is not enabled, please use enhanced flow.`
|
||||
|
||||
As jy 'n stel IAM-akkrediteerings het, moet jy [kontroleer watter toegang jy het](../../#whoami) en probeer om [privileges te verhoog](../../aws-privilege-escalation/).
|
||||
As jy 'n stel IAM geloofsbriewe het, moet jy [kontroleer watter toegang jy het](../../#whoami) en probeer om [privileges te verhoog](../../aws-privilege-escalation/).
|
||||
|
||||
### Geverifieer
|
||||
|
||||
> [!NOTE]
|
||||
> Onthou dat **geverifieerde gebruikers** waarskynlik **verskillende toestemmings** toegeken sal word, so as jy kan **aanmeld binne die app**, probeer dit en kry die nuwe akkrediteerings.
|
||||
> Onthou dat **geverifieerde gebruikers** waarskynlik **verskillende toestemmings** toegeken sal word, so as jy kan **aanmeld binne die app**, probeer dit en kry die nuwe geloofsbriewe.
|
||||
|
||||
Daar kan ook **rolle** beskikbaar wees vir **geverifieerde gebruikers wat toegang tot die Identiteitspoel** het.
|
||||
|
||||
Hiervoor mag jy toegang tot die **identiteitsverskaffer** nodig hê. As dit 'n **Cognito-gebruikerspoel** is, kan jy dalk die standaardgedrag misbruik en **self 'n nuwe gebruiker skep**.
|
||||
Hiervoor mag jy toegang tot die **identiteitsverskaffer** nodig hê. As dit 'n **Cognito Gebruikerspoel** is, kan jy dalk die standaardgedrag misbruik en **self 'n nuwe gebruiker skep**.
|
||||
|
||||
> [!TIP]
|
||||
> Die **IAM Cognito geverifieerde rol wat via geskep is, word standaard** `Cognito_<Identiteitspoel naam>Auth_Role` genoem.
|
||||
> Die **IAM Cognito geverifieerde rol wat via geskep is** word standaard `Cognito_<Identiteitspoel naam>Auth_Role` genoem.
|
||||
|
||||
In elk geval, die **volgende voorbeeld** verwag dat jy reeds binne 'n **Cognito-gebruikerspoel** aangemeld het wat gebruik word om toegang tot die Identiteitspoel te verkry (moet nie vergeet dat ander tipes identiteitsverskaffers ook gekonfigureer kan word nie).
|
||||
In elk geval, die **volgende voorbeeld** verwag dat jy reeds binne 'n **Cognito Gebruikerspoel** aangemeld het wat gebruik word om toegang tot die Identiteitspoel te verkry (moet nie vergeet dat ander tipes identiteitsverskaffers ook gekonfigureer kan word nie).
|
||||
|
||||
<pre class="language-bash"><code class="lang-bash">aws cognito-identity get-id \
|
||||
--identity-pool-id <identity_pool_id> \
|
||||
@@ -162,7 +162,7 @@ aws cognito-identity get-credentials-for-identity \
|
||||
|
||||
|
||||
# In die IdToken kan jy rolle vind waartoe 'n gebruiker toegang het as gevolg van Gebruikerspoel Groepe
|
||||
# Gebruik die --custom-role-arn om akkrediteerings vir 'n spesifieke rol te kry
|
||||
# Gebruik die --custom-role-arn om geloofsbriewe vir 'n spesifieke rol te kry
|
||||
aws cognito-identity get-credentials-for-identity \
|
||||
--identity-id <identity_id> \
|
||||
<strong> --custom-role-arn <role_arn> \
|
||||
@@ -170,6 +170,6 @@ aws cognito-identity get-credentials-for-identity \
|
||||
</code></pre>
|
||||
|
||||
> [!WARNING]
|
||||
> Dit is moontlik om **verskillende IAM rolle te konfigureer afhangende van die identiteitsverskaffer** waar die gebruiker aangemeld is of selfs net afhangende **van die gebruiker** (met behulp van aansprake). Daarom, as jy toegang tot verskillende gebruikers het deur dieselfde of verskillende verskaffers, kan dit **die moeite werd wees om aan te meld en toegang te verkry tot die IAM rolle van al hulle**.
|
||||
> Dit is moontlik om **verskillende IAM rolle te konfigureer afhangende van die identiteitsverskaffer** waarteen die gebruiker aangemeld is of selfs net afhangende **van die gebruiker** (met behulp van aansprake). Daarom, as jy toegang het tot verskillende gebruikers deur dieselfde of verskillende verskaffers, mag dit **die moeite werd wees om aan te meld en toegang te verkry tot die IAM rolle van al hulle**.
|
||||
|
||||
{{#include ../../../../banners/hacktricks-training.md}}
|
||||
|
||||
@@ -4,11 +4,11 @@
|
||||
|
||||
## Basiese Inligting
|
||||
|
||||
'n Gebruikerspoel is 'n gebruikersgids in Amazon Cognito. Met 'n gebruikerspoel kan jou gebruikers **aanmeld by jou web- of mobiele toepassing** deur Amazon Cognito, **of federate** deur 'n **derdeparty** identiteitsverskaffer (IdP). Of jou gebruikers nou direk of deur 'n derdeparty aanmeld, alle lede van die gebruikerspoel het 'n gidsprofiel wat jy deur 'n SDK kan toegang.
|
||||
'n Gebruikerspoel is 'n gebruikersgids in Amazon Cognito. Met 'n gebruikerspoel kan jou gebruikers **aanmeld by jou web- of mobiele toepassing** deur Amazon Cognito, **of federate** deur 'n **derdeparty** identiteitsverskaffer (IdP). Of jou gebruikers nou direk of deur 'n derdeparty aanmeld, het alle lede van die gebruikerspoel 'n gidsprofiel wat jy deur 'n SDK kan toegang.
|
||||
|
||||
Gebruikerspoele bied:
|
||||
|
||||
- Registrasie- en aanmelddienste.
|
||||
- Teken-in en teken-aan dienste.
|
||||
- 'n Ingeboude, aanpasbare web UI om gebruikers aan te meld.
|
||||
- Sosiale aanmelding met Facebook, Google, Login with Amazon, en Sign in with Apple, en deur SAML en OIDC identiteitsverskaffers van jou gebruikerspoel.
|
||||
- Gebruikersgidsbestuur en gebruikersprofiele.
|
||||
@@ -36,7 +36,7 @@ Pacu (new:test) > run cognito__attack --username randomuser --email XX+sdfs2@gma
|
||||
us-east-2:a06XXXXX-c9XX-4aXX-9a33-9ceXXXXXXXXX --user_pool_clients
|
||||
59f6tuhfXXXXXXXXXXXXXXXXXX@us-east-2_0aXXXXXXX
|
||||
```
|
||||
- [Cognito Scanner](https://github.com/padok-team/cognito-scanner) is 'n CLI-gereedskap in python wat verskillende aanvalle op Cognito implementeer, insluitend ongewenste rekening skep en rekening oracle. Kyk na [hierdie skakel](https://github.com/padok-team/cognito-scanner) vir meer inligting.
|
||||
- [Cognito Scanner](https://github.com/padok-team/cognito-scanner) is 'n CLI-gereedskap in python wat verskillende aanvalle op Cognito implementeer, insluitend ongewenste rekening skep en rekening oracle. Kyk na [this link](https://github.com/padok-team/cognito-scanner) vir meer inligting.
|
||||
```bash
|
||||
# Install
|
||||
pip install cognito-scanner
|
||||
@@ -61,7 +61,7 @@ Jy mag 'n fout vind wat aandui dat jy **meer besonderhede** oor die gebruiker mo
|
||||
```
|
||||
An error occurred (InvalidParameterException) when calling the SignUp operation: Attributes did not conform to the schema: address: The attribute is required
|
||||
```
|
||||
U kan die nodige besonderhede met 'n JSON soos:
|
||||
U kan die nodige besonderhede verskaf met 'n JSON soos:
|
||||
```json
|
||||
--user-attributes '[{"Name": "email", "Value": "carlospolop@gmail.com"}, {"Name":"gender", "Value": "M"}, {"Name": "address", "Value": "street"}, {"Name": "custom:custom_name", "Value":"supername&\"*$"}]'
|
||||
```
|
||||
@@ -71,7 +71,7 @@ An error occurred (UsernameExistsException) when calling the SignUp operation: U
|
||||
```
|
||||
> [!NOTE]
|
||||
> Let op in die vorige opdrag hoe die **aangepaste eienskappe begin met "custom:"**.\
|
||||
> Weet ook dat wanneer jy registreer jy **nie nuwe aangepaste eienskappe vir die gebruiker kan skep nie**. Jy kan net waarde gee aan **standaard eienskappe** (selfs al is hulle nie vereis nie) en **aangepaste eienskappe wat gespesifiseer is**.
|
||||
> Weet ook dat wanneer jy registreer jy **nie nuwe aangepaste eienskappe vir die gebruiker kan skep nie**. Jy kan slegs waarde gee aan **standaard eienskappe** (selfs al is hulle nie vereis nie) en **aangepaste eienskappe wat gespesifiseer is**.
|
||||
|
||||
Of net om te toets of 'n kliënt-id bestaan. Dit is die fout as die kliënt-id nie bestaan nie:
|
||||
```
|
||||
@@ -92,11 +92,11 @@ aws cognito-idp confirm-sign-up --client-id <cliet_id> \
|
||||
--no-sign-request --region us-east-1
|
||||
```
|
||||
> [!WARNING]
|
||||
> Selfs al **lyk dit of jy dieselfde e-pos** en telefoonnommer kan gebruik, wanneer jy die geskepte gebruiker moet verifieer, sal Cognito kla oor die gebruik van dieselfde inligting en **sal nie toelaat dat jy die rekening verifieer** nie.
|
||||
> Selfs al **lyk dit of jy dieselfde e-pos** en telefoonnommer kan gebruik, wanneer jy die geskepte gebruiker moet verifieer, sal Cognito kla oor die gebruik van dieselfde inligting en **sal nie toelaat dat jy die rekening verifieer nie**.
|
||||
|
||||
### Privilege Escalation / Updating Attributes
|
||||
|
||||
Standaard kan 'n gebruiker **die waarde van sy eienskappe verander** met iets soos:
|
||||
Deur die standaard kan 'n gebruiker **die waarde van sy eienskappe verander** met iets soos:
|
||||
```bash
|
||||
aws cognito-idp update-user-attributes \
|
||||
--region us-east-1 --no-sign-request \
|
||||
@@ -106,19 +106,19 @@ aws cognito-idp update-user-attributes \
|
||||
#### Aangepaste attribuut privesc
|
||||
|
||||
> [!CAUTION]
|
||||
> Jy mag **aangepaste attribuute** vind wat gebruik word (soos `isAdmin`), aangesien jy standaard **die waardes van jou eie attribuute kan verander** kan jy dalk **privileges eskaleer** deur die waarde self te verander!
|
||||
> Jy mag **aangepaste attribuite** vind wat gebruik word (soos `isAdmin`), aangesien jy standaard **die waardes van jou eie attribuite kan verander** kan jy dalk **privileges eskaleer** deur die waarde self te verander!
|
||||
|
||||
#### E-pos/gebruikersnaam wysiging privesc
|
||||
#### E-pos/gebruikersnaam wysigings privesc
|
||||
|
||||
Jy kan dit gebruik om **die e-pos en telefoonnommer** van 'n gebruiker te **wysig**, maar dan, selfs al bly die rekening as geverifieer, is daardie attribuute **in 'n ongeverifieerde status** (jy moet hulle weer verifieer).
|
||||
Jy kan dit gebruik om die **e-pos en telefoonnommer** van 'n gebruiker te **wysig**, maar dan, selfs al bly die rekening as geverifieer, is daardie attribuite **in 'n ongeverifieerde status gestel** (jy moet hulle weer verifieer).
|
||||
|
||||
> [!WARNING]
|
||||
> Jy **sal nie in staat wees om in te log met e-pos of telefoonnommer** totdat jy hulle verifieer nie, maar jy sal **in staat wees om in te log met die gebruikersnaam**.\
|
||||
> Let daarop dat selfs al is die e-pos gewysig en nie geverifieer nie, dit sal verskyn in die ID Token binne die **`email`** **veld** en die veld **`email_verified`** sal **vals** wees, maar as die app **nie nagaan nie, kan jy ander gebruikers naboots**.
|
||||
> Let daarop dat selfs al is die e-pos gewysig en nie geverifieer nie, dit sal verskyn in die ID Token binne die **`email`** **veld** en die veld **`email_verified`** sal **vals** wees, maar as die app **nie kyk nie, kan jy ander gebruikers naboots**.
|
||||
|
||||
> Boonop, let daarop dat jy enigiets in die **`name`** veld kan plaas deur net die **naam attribuut** te wysig. As 'n app **nagaan** **daardie** veld om een of ander rede **in plaas van die `email`** (of enige ander attribuut) kan jy dalk **ander gebruikers naboots**.
|
||||
> Boonop, let daarop dat jy enigiets in die **`name`** veld kan plaas deur net die **naam attribuut** te wysig. As 'n app **kyk** na daardie veld om een of ander rede **in plaas van die `email`** (of enige ander attribuut) kan jy dalk **ander gebruikers naboots**.
|
||||
|
||||
In elk geval, as jy om een of ander rede jou e-pos verander het, byvoorbeeld na 'n nuwe een wat jy kan toegang, kan jy **die e-pos bevestig met die kode wat jy in daardie e-posadres ontvang het**:
|
||||
In elk geval, as jy om een of ander rede jou e-pos verander het na 'n nuwe een wat jy kan toegang, kan jy die e-pos **bevestig met die kode wat jy in daardie e-posadres ontvang het**:
|
||||
```bash
|
||||
aws cognito-idp verify-user-attribute \
|
||||
--access-token <access_token> \
|
||||
@@ -128,7 +128,7 @@ aws cognito-idp verify-user-attribute \
|
||||
Gebruik **`phone_number`** in plaas van **`email`** om 'n **nuwe telefoonnommer** te verander/te verifieer.
|
||||
|
||||
> [!NOTE]
|
||||
> Die admin kan ook die opsie aktiver om **in te log met 'n gebruiker se verkose gebruikersnaam**. Let daarop dat jy nie hierdie waarde kan verander na **enige gebruikersnaam of verkose_gebruikersnaam wat reeds gebruik word** om 'n ander gebruiker na te doen nie.
|
||||
> Die admin kan ook die opsie aktief maak om **in te log met 'n gebruiker se verkose gebruikersnaam**. Let daarop dat jy nie hierdie waarde kan verander na **enige gebruikersnaam of verkose_gebruikersnaam wat reeds gebruik word** om 'n ander gebruiker na te boots nie.
|
||||
|
||||
### Herstel/Verander Wagwoord
|
||||
|
||||
@@ -156,24 +156,24 @@ aws cognito-idp change-password \
|
||||
--proposed-password <value> \
|
||||
--access-token <value>
|
||||
```
|
||||
## Authentisering
|
||||
## Verifikasie
|
||||
|
||||
'n Gebruikerspoel ondersteun **verskillende maniere om te autentiseer**. As jy 'n **gebruikersnaam en wagwoord** het, is daar ook **verskillende metodes** wat ondersteun word om aan te meld.\
|
||||
'n Gebruikerspoel ondersteun **verskillende maniere om te verifieer**. As jy 'n **gebruikersnaam en wagwoord** het, is daar ook **verskillende metodes** wat ondersteun word om aan te meld.\
|
||||
Boonop, wanneer 'n gebruiker in die Poel **3 tipes tokens gegee word**: Die **ID Token**, die **Toegangstoken** en die **Herlaa token**.
|
||||
|
||||
- [**ID Token**](https://docs.aws.amazon.com/cognito/latest/developerguide/amazon-cognito-user-pools-using-the-id-token.html): Dit bevat aansprake oor die **identiteit van die geverifieerde gebruiker**, soos `name`, `email`, en `phone_number`. Die ID token kan ook gebruik word om **gebruikers te autentiseer op jou hulpbronne bedieners of bediener toepassings**. Jy moet die **handtekening** van die ID token **verifieer** voordat jy enige aansprake binne die ID token kan vertrou as jy dit in eksterne toepassings gebruik.
|
||||
- [**ID Token**](https://docs.aws.amazon.com/cognito/latest/developerguide/amazon-cognito-user-pools-using-the-id-token.html): Dit bevat aansprake oor die **identiteit van die geverifieerde gebruiker**, soos `naam`, `e-pos`, en `telefoon_nommer`. Die ID-token kan ook gebruik word om **gebruikers te verifieer op jou hulpbronne of bedienertoepassings**. Jy moet die **handtekening** van die ID-token **verifieer** voordat jy enige aansprake binne die ID-token kan vertrou as jy dit in eksterne toepassings gebruik.
|
||||
- Die ID Token is die token wat **die attribuutwaardes van die gebruiker bevat**, selfs die pasgemaakte.
|
||||
- [**Toegangstoken**](https://docs.aws.amazon.com/cognito/latest/developerguide/amazon-cognito-user-pools-using-the-access-token.html): Dit bevat aansprake oor die geverifieerde gebruiker, 'n lys van die **gebruiker se groepe, en 'n lys van skope**. Die doel van die toegangstoken is om **API operasies te autoriseer** in die konteks van die gebruiker in die gebruikerspoel. Byvoorbeeld, jy kan die toegangstoken gebruik om **jou gebruiker toegang te gee** om gebruikersattribuut te voeg, te verander of te verwyder.
|
||||
- [**Herlaa token**](https://docs.aws.amazon.com/cognito/latest/developerguide/amazon-cognito-user-pools-using-the-refresh-token.html): Met herlaa tokens kan jy **nuwe ID Tokens en Toegangstokens kry** vir die gebruiker totdat die **herlaa token ongeldig is**. Deur **standaard** verval die herlaa token **30 dae nadat** jou toepassingsgebruiker in jou gebruikerspoel aanmeld. Wanneer jy 'n toepassing vir jou gebruikerspoel skep, kan jy die herlaa token vervaldatum van die toepassing stel op **enige waarde tussen 60 minute en 10 jaar**.
|
||||
- [**Toegangstoken**](https://docs.aws.amazon.com/cognito/latest/developerguide/amazon-cognito-user-pools-using-the-access-token.html): Dit bevat aansprake oor die geverifieerde gebruiker, 'n lys van die **gebruiker se groepe, en 'n lys van skope**. Die doel van die toegangstoken is om **API-operasies te autoriseer** in die konteks van die gebruiker in die gebruikerspoel. Byvoorbeeld, jy kan die toegangstoken gebruik om **jou gebruiker toegang te gee** om gebruikersattribuut te voeg, te verander of te verwyder.
|
||||
- [**Herlaa token**](https://docs.aws.amazon.com/cognito/latest/developerguide/amazon-cognito-user-pools-using-the-refresh-token.html): Met herlaa tokens kan jy **nuwe ID Tokens en Toegangstokens** vir die gebruiker kry totdat die **herlaa token ongeldig is**. Deur **standaard** verval die herlaa token **30 dae nadat** jou toepassingsgebruiker in jou gebruikerspoel aanmeld. Wanneer jy 'n toepassing vir jou gebruikerspoel skep, kan jy die vervaldatum van die toepassingsherlaa token op **enige waarde tussen 60 minute en 10 jaar** stel.
|
||||
|
||||
### ADMIN_NO_SRP_AUTH & ADMIN_USER_PASSWORD_AUTH
|
||||
|
||||
Dit is die bediener kant autentisering vloei:
|
||||
Dit is die bediener-kant verifikasie vloei:
|
||||
|
||||
- Die bediener-kant toepassing roep die **`AdminInitiateAuth` API operasie** aan (in plaas van `InitiateAuth`). Hierdie operasie vereis AWS geloofsbriewe met toestemmings wat **`cognito-idp:AdminInitiateAuth`** en **`cognito-idp:AdminRespondToAuthChallenge`** insluit. Die operasie gee die vereiste autentisering parameters terug.
|
||||
- Nadat die bediener-kant toepassing die **autentisering parameters** het, roep dit die **`AdminRespondToAuthChallenge` API operasie** aan. Die `AdminRespondToAuthChallenge` API operasie slaag slegs wanneer jy AWS geloofsbriewe verskaf.
|
||||
- Die bediener-kant toepassing roep die **`AdminInitiateAuth` API-operasie** aan (in plaas van `InitiateAuth`). Hierdie operasie vereis AWS-akkrediteer met toestemmings wat **`cognito-idp:AdminInitiateAuth`** en **`cognito-idp:AdminRespondToAuthChallenge`** insluit. Die operasie gee die vereiste verifikasieparameters terug.
|
||||
- Nadat die bediener-kant toepassing die **verifikasieparameters** het, roep dit die **`AdminRespondToAuthChallenge` API-operasie** aan. Die `AdminRespondToAuthChallenge` API-operasie slaag slegs wanneer jy AWS-akkrediteer verskaf.
|
||||
|
||||
Hierdie **metode is NIE geaktiveer** deur standaard nie.
|
||||
Hierdie **metode is NIE geaktiveer nie** deur standaard.
|
||||
|
||||
Om te **meld aan** moet jy **weet**:
|
||||
|
||||
@@ -184,8 +184,8 @@ Om te **meld aan** moet jy **weet**:
|
||||
- kliënt geheim (slegs as die toepassing geconfigureer is om 'n geheim te gebruik)
|
||||
|
||||
> [!NOTE]
|
||||
> Ten einde **in staat te wees om met hierdie metode aan te meld** moet daardie toepassing toelaat om aan te meld met `ALLOW_ADMIN_USER_PASSWORD_AUTH`.\
|
||||
> Boonop, om hierdie aksie uit te voer, het jy geloofsbriewe met die toestemmings **`cognito-idp:AdminInitiateAuth`** en **`cognito-idp:AdminRespondToAuthChallenge`** nodig.
|
||||
> Ten einde **met hierdie metode aan te meld**, moet daardie toepassing toelaat om aan te meld met `ALLOW_ADMIN_USER_PASSWORD_AUTH`.\
|
||||
> Boonop, om hierdie aksie uit te voer, het jy akkrediteer met die toestemmings **`cognito-idp:AdminInitiateAuth`** en **`cognito-idp:AdminRespondToAuthChallenge`**
|
||||
```python
|
||||
aws cognito-idp admin-initiate-auth \
|
||||
--client-id <client-id> \
|
||||
@@ -243,20 +243,20 @@ print(login_user(username, password, client_id, client_secret, user_pool_id))
|
||||
|
||||
### USER_PASSWORD_AUTH
|
||||
|
||||
Hierdie metode is 'n ander eenvoudige en **tradisionele gebruiker & wagwoord outentikasie** vloei. Dit word aanbeveel om **'n tradisionele** outentikasie metode **na Cognito** te **migreer** en **aanbeveel** om dit dan **te deaktiveer** en **in plaas daarvan** die **ALLOW_USER_SRP_AUTH** metode te **gebruik** (aangesien dit nooit die wagwoord oor die netwerk stuur).\
|
||||
Hierdie metode is 'n ander eenvoudige en **tradisionele gebruiker & wagwoord verifikasie** vloei. Dit word aanbeveel om 'n **tradisionele** verifikasie metode **na Cognito** te **migreer** en dan **aan te beveel** om dit te **deaktiveer** en dan die **ALLOW_USER_SRP_AUTH** metode te **gebruik** (aangesien dit nooit die wagwoord oor die netwerk stuur).\
|
||||
Hierdie **metode is NIE geaktiveer** nie as standaard.
|
||||
|
||||
Die hoof **verskil** met die **vorige outentikasie metode** binne die kode is dat jy **nie die gebruiker poel ID** hoef te weet nie en dat jy **nie ekstra toestemmings** in die Cognito Gebruiker Poel nodig het nie.
|
||||
Die hoof **verskil** met die **vorige verifikasie metode** binne die kode is dat jy **nie die gebruiker poel ID** hoef te weet nie en dat jy **nie ekstra toestemmings** in die Cognito Gebruiker Poel nodig het nie.
|
||||
|
||||
Om te **log in** moet jy **weet**:
|
||||
|
||||
- kliënt id
|
||||
- gebruikersnaam
|
||||
- wagwoord
|
||||
- kliënt geheim (slegs as die toepassing gekonfigureer is om 'n geheim te gebruik)
|
||||
- kliënt geheim (slegs as die toepassing geconfigureer is om 'n geheim te gebruik)
|
||||
|
||||
> [!NOTE]
|
||||
> Ten einde **in staat te wees om met hierdie metode in te log** moet daardie toepassing toelaat om in te log met ALLOW_USER_PASSWORD_AUTH.
|
||||
> Om **in staat te wees om met hierdie metode in te log** moet daardie toepassing toelaat om in te log met ALLOW_USER_PASSWORD_AUTH.
|
||||
```python
|
||||
aws cognito-idp initiate-auth --client-id <client-id> \
|
||||
--auth-flow USER_PASSWORD_AUTH --region <region> \
|
||||
@@ -310,20 +310,20 @@ print(login_user(username, password, client_id, client_secret, user_pool_id))
|
||||
|
||||
### USER_SRP_AUTH
|
||||
|
||||
Hierdie scenario is soortgelyk aan die vorige een, maar **in plaas daarvan om die wagwoord** deur die netwerk te stuur om aan te meld, word 'n **uitdaging-authentisering uitgevoer** (so geen wagwoord wat selfs versleuteld deur die netwerk beweeg nie).\
|
||||
Hierdie scenario is soortgelyk aan die vorige een, maar **in plaas daarvan om die wagwoord** deur die netwerk te stuur om in te log, word 'n **uitdaging-authentisering uitgevoer** (so geen wagwoord wat selfs versleuteld deur die netwerk beweeg nie).\
|
||||
Hierdie **metode is standaard geaktiveer**.
|
||||
|
||||
Om te **meld aan** moet jy weet:
|
||||
Om te **log in** moet jy weet:
|
||||
|
||||
- gebruikerspoel id
|
||||
- kliënt id
|
||||
- gebruikersnaam
|
||||
- wagwoord
|
||||
- kliënt geheim (slegs as die toepassing gekonfigureer is om 'n geheim te gebruik)
|
||||
- kliënt geheim (slegs as die app gekonfigureer is om 'n geheim te gebruik)
|
||||
|
||||
<details>
|
||||
|
||||
<summary>Code om aan te meld</summary>
|
||||
<summary>Code om in te log</summary>
|
||||
```python
|
||||
from warrant.aws_srp import AWSSRP
|
||||
import os
|
||||
@@ -347,7 +347,7 @@ token_type = tokens['AuthenticationResult']['TokenType']
|
||||
|
||||
### REFRESH_TOKEN_AUTH & REFRESH_TOKEN
|
||||
|
||||
Hierdie **metode gaan altyd geldig wees** (dit kan nie gedeaktiveer word nie) maar jy moet 'n geldige herlaai-token hê.
|
||||
Hierdie **metode gaan altyd geldig wees** (dit kan nie gedeaktiveer word nie) maar jy moet 'n geldige hernu token hê.
|
||||
```bash
|
||||
aws cognito-idp initiate-auth \
|
||||
--client-id 3ig6h5gjm56p1ljls1prq2miut \
|
||||
@@ -395,7 +395,7 @@ In hierdie geval gaan die **verifikasie** deur die **uitvoering van 'n lambda-fu
|
||||
|
||||
### Gevorderde Sekuriteit
|
||||
|
||||
Standaard is dit gedeaktiveer, maar as dit geaktiveer is, kan Cognito in staat wees om **rekening oorname** te **vind**. Om die waarskynlikheid te minimaliseer, moet jy aanmeld vanaf 'n **netwerk binne dieselfde stad, met dieselfde gebruikersagent** (en IP as dit moontlik is)**.**
|
||||
Standaard is dit gedeaktiveer, maar as dit geaktiveer is, kan Cognito in staat wees om **rekening oorname** te vind. Om die waarskynlikheid te minimaliseer, moet jy aanmeld vanaf 'n **netwerk binne dieselfde stad, met dieselfde gebruikersagent** (en IP as dit moontlik is)**.**
|
||||
|
||||
### **MFA Onthou toestel**
|
||||
|
||||
@@ -406,19 +406,19 @@ As die gebruiker vanaf dieselfde toestel aanmeld, kan die MFA omseil word, probe
|
||||
Dit is moontlik om **gebruikers aan Gebruiker Pool** groepe toe te voeg wat verband hou met een **IAM rol**.\
|
||||
Boonop kan **gebruikers** aan **meer as 1 groep met verskillende IAM rolle** toegeken word.
|
||||
|
||||
Let daarop dat selfs al is 'n groep binne 'n groep met 'n IAM rol aangeheg, om toegang te verkry tot die IAM geloofsbriewe van daardie groep, is dit nodig dat die **Gebruiker Pool vertrou word deur 'n Identiteits Pool** (en die besonderhede van daardie Identiteits Pool ken).
|
||||
Let daarop dat selfs al is 'n groep binne 'n groep met 'n IAM rol aangeheg, dit nodig is dat die **Gebruiker Pool vertrou word deur 'n Identiteits Pool** (en die besonderhede van daardie Identiteits Pool ken).
|
||||
|
||||
Nog 'n vereiste om die **IAM rol aangedui in die IdToken** te verkry wanneer 'n gebruiker in die Gebruiker Pool geverifieer word (`aws cognito-idp initiate-auth...`), is dat die **Identiteits Verskaffer Verifikasie verskaffer** moet aandui dat die **rol uit die token gekies moet word.**
|
||||
|
||||
<figure><img src="../../../../images/image (250).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Die **rolle** waartoe 'n gebruiker toegang het, is **binne die `IdToken`**, en 'n gebruiker kan **kies watter rol hy graag geloofsbriewe vir** wil hê met die **`--custom-role-arn`** van `aws cognito-identity get-credentials-for-identity`.\
|
||||
As die **standaard opsie** egter die een is wat **gekonfigureer** is (`use default role`), en jy probeer om toegang te verkry tot 'n rol vanaf die IdToken, sal jy **fout** kry (dit is waarom die vorige konfigurasie nodig is):
|
||||
Die **rolle** waartoe 'n gebruiker toegang het, is **binne die `IdToken`**, en 'n gebruiker kan **kies watter rol hy graag krediete vir wil hê** met die **`--custom-role-arn`** van `aws cognito-identity get-credentials-for-identity`.\
|
||||
As die **standaard opsie** egter die een is wat **gekonfigureer** is (`use default role`), en jy probeer om toegang tot 'n rol vanaf die IdToken te verkry, sal jy **fout** kry (dit is waarom die vorige konfigurasie nodig is):
|
||||
```
|
||||
An error occurred (InvalidParameterException) when calling the GetCredentialsForIdentity operation: Only SAML providers and providers with RoleMappings support custom role ARN.
|
||||
```
|
||||
> [!WARNING]
|
||||
> Let daarop dat die rol wat aan 'n **User Pool Group** toegeken is, **toeganklik moet wees deur die Identiteitsverskaffer** wat **die User Pool vertrou** (aangesien die IAM-rol **sessie-inligting daaruit verkry gaan word**).
|
||||
> Let daarop dat die rol wat aan 'n **User Pool Group** toegeken is, **toeganklik moet wees deur die Identiteitsverskaffer** wat **die User Pool vertrou** (aangesien die IAM-rol **sessie geloofsbriewe daaruit verkry gaan word**).
|
||||
```json
|
||||
{
|
||||
"Version": "2012-10-17",
|
||||
|
||||
Reference in New Issue
Block a user