Name | Date | Size | #Lines | LOC | ||
---|---|---|---|---|---|---|
.. | 03-May-2022 | - | ||||
examples/ | H | 12-Dec-2018 | - | |||
okta/ | H | 12-Dec-2018 | - | |||
.gitignore | H A D | 12-Dec-2018 | 9 | |||
readme.md | H A D | 12-Dec-2018 | 4.6 KiB |
readme.md
1# OKTA SDK for GoLang (Unofficial) 2 3 4**NOTE:** There is an Official GO SDK under developement [okta/okta-sdk-golang](https://github.com/okta/okta-sdk-golang) 5 6An SDK to integrate with the [OKTA SDK](http://developer.okta.com/documentation/) for Golang. 7 8Much credits has to be given to the [go-github](https://github.com/google/go-github) library for which this package mimics. I stole a huge amount of code and ideas from that project. 9 10 11*Warnings* (There are many) 12 13* I have far from mastered the Go language. 14* This is not a complete SDK. It has been developed based on my own needs. 15* Use At your own risk! 16* Not all features of the OKTA API are implemented. 17* There are a long list of TODOS. 18* The current version of the API is focused more around retrieving data from OKTA not actually updating. 19 20 21## Current State 22 23The current state of the this SDK is in development. There is still much work to be done. Currently, we have basic user and group functionality working. We just focus on doing reads from OKTA and have not focused on doing updates. 24 25## Operations 26 27* User 28 * Create User (Implemented) ☑ 29 * Create User without password (Implemented in user.Create ) ☑ 30 * See Examples `examples/userExamples.go createUserNoPassword()` 31 * Create User with password (Implemented in user.Create ) ☑ 32 * See Examples `examples/userExamples.go createUserWithPassword()` 33 * Get user 34 * Me (Implemented using Users.GetByID pass "me" as parameter) ☑ 35 * By ID (Implemented Users.GetByID) ☑ 36 * By Login (Implemented via Users.ListWithFilter passing in Login as filter parameter) ☑ 37 * List User by various filters (Implemented via Users.ListWithFilter) ☑ 38 * status, lastupdated, id, profile.login, profile.email, profile.firstName, profile.lastName 39 * [List User with Search (Early Access)](http://developer.okta.com/docs/api/resources/users.html#list-users-with-search) (NOT Implemented) ☹ 40 * update User (NOT Implemented) ☹ 41 - password ☹ 42 - user object ☹ 43 * Groups - get user groups (Implemented with Users.PopulateGroups) ☑ 44 * activate (implemented in Users.Activate) ☑ 45 * deactivate (implemented in Users.Deactivate) ☑ 46 * suspend (implemented in Users.Suspend) ☑ 47 * unsuspend (implemented in Users.Unsuspend) ☑ 48 * unlock (implemented in Users.Unlock) ☑ 49 * reset_password (implemented in Users.ResetPassword) ☑ 50 * SetPassword (Implemented in Users.SetPassword) ☑ 51 * expire_password (NOT Implemented) ☹ 52 * reset_factors (NOT Implemented) ☹ 53 * forgotpassword (NOT Implemented) ☹ 54 * change_recovery_question (NOT Implemented) ☹ 55 * List Enrolled Factors (implemented in Users.PopulateEnrolledFactors) ☑ 56* Roles (Admin Roles) (NOT Implemented) ☹ 57* Groups (okta.Groups) 58 - Get Group (Implemented with Groups.GetByID) ☑ 59 - List Groups (Implemented with Groups.ListWithFilter) ☑ 60 - Add Group (Implemented Groups.Add) ☑ 61 - Update Group (NOT Implemented) ☹ 62 - Delete Group (Implemented Groups.Delete) ☑ 63 - Group Members (Implemented with Groups.GetUsers) 64 - Add User To Group (implemented in Groups.AddUserToGroup) ☑ 65 - Remove User From Group (Implemented in RemoveUserFromGroup) ☑ 66 - List Apps (NOT Implemented) ☹ 67* Factors (NOT Implemented) 68 - Get user FActor(s) (NOT Implemented) ☹ 69 - (implemented in Users.PopulateEnrolledFactors) ☑ 70 - Eligible factors (NOT Implemented) ☹ 71 - Enroll in factor (NOT Implemented) ☹ 72 - reset factor (NOT Implemented) ☹ 73 - verify factors (NOT Implemented) ☹ 74* Apps (Barely Implemented) 75 - get App (Apps.GetByID) ☑ 76 - get App Users (Apps.GetUsers) ☑ 77 - Get APP Groups (Implemented in Apps.GetGroups) ☑ 78 - Get App User (Implemented in Apps.GetUser) ☑ 79 - Many more API Interactions to go ☹ 80 81 82# OKTA Links 83 84Important OKTA Links 85 86http://developer.okta.com/docs/api/getting_started/design_principles.html 87 88 89 90## Example code 91 92 93There are several runnable examples in the `/examples` directory. You can run them by using the following: 94 95First you need two environment variables configured: 96 97* `OKTA_API_TEST_ORG` - The Orgname of your "Preview OKTA Environment" 98* `OKTA_API_TEST_TOKEN` - An API Token for your preview ORG 99 100``` 101cd $GOPATH/src/github.com/chrismalek/oktasdk-go 102go run examples/*.go 103``` 104 105You can see some examples in that code in the usage: 106 107* `/examples/userExamples.go` - Examples Using the User Client 108* `/examples/groupExamples.go` - Exaples using the Group Client 109 110 111 112 113 114 115