You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CHANGELOG.md
+6Lines changed: 6 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,5 +1,11 @@
1
1
# Changelog
2
2
3
+
## 2.5.0 (May 20, 2025)
4
+
5
+
* New `direct` command for OOB MFA password grant auth flow [#277](https://github.com/okta/okta-aws-cli/pull/277), thanks [@monde](https://github.com/monde)!
-[Friendly IdP and Role menu labels](#friendly-idp-and-role-menu-labels)
54
58
-[Configuration by profile name](#configuration-by-profile-name)
55
59
-[Debug okta.yaml](#debug-oktayaml)
@@ -68,6 +72,7 @@ format.
68
72
| (empty) | When executed without a subcommand **and** without arguments `okta-aws-cli` will print the online help and exit. With arguments it defaults to the `web` command. |
69
73
|`web`| Human oriented retrieval of temporary IAM credentials through Okta authentication and device authorization. |
70
74
|`m2m`| Machine/headless oriented retrieval of temporary IAM credentials through Okta authentication with a private key. **IMPORTANT!** This a not a feature intended for a human use case. Be sure to use industry state of the art secrets management techniques with the private key. |
75
+
|`direct`| Human or machine/headless oriented retrieval of temporary IAM credentials through out-of-bounds MFA [Direct Authentication](https://developer.okta.com/docs/guides/configure-direct-auth-grants/dmfaoobov/main/)|
71
76
|`list-profiles`| Lists profile names in ~/.okta/okta.yaml. |
72
77
|`debug`| Debug okta.yaml config file and exit. |
73
78
@@ -193,6 +198,9 @@ Okta Console.
193
198
use industry state of the art secrets management techniques with the private
194
199
key.***
195
200
201
+
**NOTE**: The `m2m` command only operates with an Okta OIDC app, not the Okta
202
+
AWS Federation app.
203
+
196
204
```shell
197
205
# This example presumes its arguments are set as environment variables such as
198
206
# one may find in a headless CI environment.
@@ -311,6 +319,92 @@ role of the `sts:AssumeRoleWithWebIdentity` action type. This setting is on the
311
319
trust relationship tab when viewing a specific role in the AWS Console. Also
312
320
note the ARNs of these roles for later use.
313
321
322
+
## Direct Command
323
+
324
+
**NOTE**: The `direct` command only operates with an Okta OIDC app, not the
325
+
Okta AWS Federation app.
326
+
327
+
```shell
328
+
# use the shell to read in username/password, both can be set directly as CLI
The `Session Token` has a default expiry of 60 minutes.
396
+
397
+
### Direct Command Requirements
398
+
399
+
Direct is an integration of:
400
+
401
+
- Otka's [Direct Authorization](https://developer.okta.com/docs/guides/configure-direct-auth-grants/dmfaoobov/main/), and out-of-bounds MFA flow
402
+
-[Okta API service app](https://developer.okta.com/docs/guides/implement-oauth-for-okta-serviceapp/main/)
403
+
- Okta [custom](https://developer.okta.com/docs/guides/customize-authz-server/main/) authorization server
404
+
-[Okta access policy](https://developer.okta.com/docs/guides/configure-access-policy/main/) associated with the service app and have rule(s) for the client credentials flow
405
+
-[AWS IAM OpenID Connect (OIDC) identity provider](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_create_oidc.html)
406
+
407
+
314
408
## List-Profiles Command
315
409
316
410
```shell
@@ -373,8 +467,8 @@ These global settings are optional unless marked otherwise:
373
467
|-----|-----|-----|-----|
374
468
| AWS Region (**optional**) | AWS region (will override ENV VAR `AWS_REGION` and `AWS_DEFAULT_REGION`) e.g. `us-east-2`|`--aws-region [value]`|`OKTA_AWSCLI_AWS_REGION`|
375
469
| Okta Org Domain (**required**) | Full host and domain name of the Okta org e.g. `my-org.okta.com` or the custom domain value |`--org-domain [value]`|`OKTA_AWSCLI_ORG_DOMAIN`|
376
-
| OIDC Client ID (**required**) | For `web` the OIDC native application / [Allowed Web SSO Client ID](#allowed-web-sso-client-id), for `m2m` the API services app ID |`--oidc-client-id [value]`|`OKTA_AWSCLI_OIDC_CLIENT_ID`|
377
-
| AWS IAM Role ARN (**optional** for `web`, **required** for `m2m`) | For web preselects the role list to this preferred IAM role for the given IAM Identity Provider. For `m2m`|`--aws-iam-role [value]`|`OKTA_AWSCLI_IAM_ROLE`|
470
+
| OIDC Client ID (**required**) | For `web` the OIDC native application / [Allowed Web SSO Client ID](#allowed-web-sso-client-id), for `m2m`and `direct`the API services app ID |`--oidc-client-id [value]`|`OKTA_AWSCLI_OIDC_CLIENT_ID`|
471
+
| AWS IAM Role ARN (**optional** for `web`, **required** for `m2m` and `direct`) | For web preselects the role list to this preferred IAM role for the given IAM Identity Provider. For `m2m` and `direct`|`--aws-iam-role [value]`|`OKTA_AWSCLI_IAM_ROLE`|
378
472
| AWS Session Duration | The lifetime, in seconds, of the AWS credentials. Must be between 60 and 43200. |`--aws-session-duration [value]`|`OKTA_AWSCLI_SESSION_DURATION`|
379
473
| Output format | Default is `env-var`. Options: `env-var` for output to environment variables, `aws-credentials` for output to AWS credentials file, `process-credentials` for credentials as JSON, or `noop` for no output which can be useful with `--exec`|`--format [value]`|`OKTA_AWSCLI_FORMAT`|
380
474
| Profile | Default is `default`|`--profile [value]`|`OKTA_AWSCLI_PROFILE`|
@@ -390,7 +484,6 @@ These global settings are optional unless marked otherwise:
390
484
| Short user agent. HTTP requests made to the Okta API have user-agent set to `okta-aws-cli` allowing for a simple UA value in a policy rule. |`true` if flag is present |`--short-user-agent`|`OKTA_AWSCLI_SHORT_USER_AGENT=true`|
391
485
392
486
393
-
394
487
### Web command settings
395
488
396
489
If the OIDC Native App doesn't also have the `okta.users.read.self` grant the
@@ -474,6 +567,17 @@ These settings are optional unless marked otherwise:
474
567
| Custom scope name | The custom scope established in the custom authorization server. Default `okta-m2m-access`|`--custom-scope [value]`|`OKTA_AWSCLI_CUSTOM_SCOPE`|
475
568
| Custom STS Role Session Name | Customize STS Role Session Name. Default `okta-aws-cli`|`--aws-sts-role-session-name [value]`|`OKTA_AWSCLI_STS_ROLE_SESSION_NAME`|
476
569
570
+
### Direct command settings
571
+
572
+
These settings are optional unless marked otherwise:
573
+
574
+
| Name | Description | Command line flag | ENV var and .env file value |
575
+
|-----|-----|-----|-----|
576
+
| Username (**required**) | The username of the operator |`--username [value]`|`OKTA_AWSCLI_USERNAME`|
577
+
| Password (**required**) | The password of the operator |`--password [value]`|`OKTA_AWSCLI_PASSWORD`|
578
+
| Authorization Server ID | The ID of the Okta authorization server, set ID for a custom authorization server, will use default otherwise. Default `default`|`--authz-id [value]`|`OKTA_AWSCLI_AUTHZ_ID`|
579
+
| Custom STS Role Session Name | Customize STS Role Session Name. Default `okta-aws-cli`|`--aws-sts-role-session-name [value]`|`OKTA_AWSCLI_STS_ROLE_SESSION_NAME`|
580
+
477
581
### Friendly IdP and Role menu labels
478
582
479
583
When the operator has many AWS Federation apps listing the AWS IAM IdP ARNs can
0 commit comments