{"id":22325510,"url":"https://github.com/jamf/nomad-adauth","last_synced_at":"2025-07-29T16:33:11.324Z","repository":{"id":41827244,"uuid":"419670723","full_name":"jamf/NoMAD-ADAuth","owner":"jamf","description":null,"archived":false,"fork":false,"pushed_at":"2023-11-20T19:41:20.000Z","size":335,"stargazers_count":12,"open_issues_count":1,"forks_count":6,"subscribers_count":8,"default_branch":"main","last_synced_at":"2023-11-20T20:39:26.986Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Swift","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jamf.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2021-10-21T10:03:24.000Z","updated_at":"2023-11-20T20:39:26.987Z","dependencies_parsed_at":"2023-11-07T04:03:34.652Z","dependency_job_id":null,"html_url":"https://github.com/jamf/NoMAD-ADAuth","commit_stats":null,"previous_names":[],"tags_count":18,"template":null,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jamf%2FNoMAD-ADAuth","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jamf%2FNoMAD-ADAuth/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jamf%2FNoMAD-ADAuth/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jamf%2FNoMAD-ADAuth/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jamf","download_url":"https://codeload.github.com/jamf/NoMAD-ADAuth/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":228030028,"owners_count":17858432,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-12-04T02:12:22.509Z","updated_at":"2024-12-04T02:12:23.147Z","avatar_url":"https://github.com/jamf.png","language":"Swift","funding_links":[],"categories":[],"sub_categories":[],"readme":"# NoMAD Projects Archived\n\nJamf has decided to archive the NoMAD repos on GitHub. Going forward they aren’t going to receive any updates. \n\nWhile they are read-only, they aren’t being deleted. That means that anyone who wants to fork and use the code is welcome to do so. Everything remains MIT licensed and open source.\n\nThe projects are still here and still open source, they just won’t be maintained by Jamf. Any existing issues or PRs have been closed.\n\nYou can see the official announcement on the [Jamf Blog](https://www.jamf.com/blog/jamf-to-archive-nomad-open-source-projects/).\n\nThere is still an active user community on the [MacAdmins Slack nomad channel](https://macadmins.slack.com/archives/C1Y2Y14QG).\n\nAs always, have fun and read the man pages.\n\nmacshome\n\n#  NoMAD AD Authentication Framework\n\nCongratulations, you're about to experience the blood, sweat and tears of the thousands of development hours that have gone into NoMAD's Active Directory authentication! This framework will allow you to easily add in robust AD integration to any macOS application.\n\nThis framework is written primarily in Swift 4.2 on Xcode 10 and while much of the functionality is working, it should be considered beta at this point.\n\n[![Xcode - Build and Analyze](https://github.com/jamf/NoMAD-ADAuth/actions/workflows/objective-c-xcode.yml/badge.svg)](https://github.com/jamf/NoMAD-ADAuth/actions/workflows/objective-c-xcode.yml)\n## Overview\n\nThe NoMAD AD Authentication Framework allows you to present a username and password to the Framework and have it get tickets for the user and then lookup the user's information in AD. In addition the framework is:\n\n- site aware\n- able to change passwords\n- able to use SSL for AD lookups\n- can have the site forced or ignored\n- is aware of network changes, and will mark sites to be re-discovered on changes\n- perform recursive group lookups\n\n## Basic Usage of the Framework via Delegate\n\n- Drag the framework into your project in the Embedded Binaries section of the target\n- Import NoMAD_ADAuth into your class\n- Adopt NoMADUserSessionDelegate, and then add the stubs suggested to conform to the protocol\n- create a NoMADSession object `let session = NoMADSession.init(domain: \"nomad.test\", user: \"ftest@NOMAD.TEST\", type: .AD)`\n- set a password on the session object `session.userPass = \"Secret1!\"`\n- set the session delegate to your class `session.delegate = self`\n- try to authenticate `session.authenticate()`\n- the delegate callbacks will then let you know if the auth succeeded or not\n\n## Basic Usage of the Framework via Closure\n\n- Drag the framework into your project in the Embedded Binaries section of the target\n- Import `NoMAD_ADAuth`\n- Make a `NoMADSession` object via `init(domain: String, user: String, type: LDAPType = .AD)`\n- Set the session's `userPass` variable\n- Call the session's `getKerberosTicket(principal: String? = nil, completion: @escaping (KerberosTicketResult) -\u003e Void)` function\n- If the optional `principal` parameter is supplied, this function tries to fetch an existing ticket for this principal,\n-  and then if unsuccessful, continues by trying to get a new ticket\n- This function shares its result by running the supplied closure upon completion\n-  with `KerberosTicketResult` containing either an `ADUserRecord` on success or a `NoMADSessionError` on failure\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjamf%2Fnomad-adauth","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjamf%2Fnomad-adauth","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjamf%2Fnomad-adauth/lists"}